anon-iclr-submission/benchname-bug-localization huggingface dataset:
Repository: falconry/falcon
Issue: Request.get_header raises the wrong exception

Found an issue that is making exception-handling not very intuitive when dealing with required headers...

```
try:
  my_header = req.get_header('My-Header', required=True)
except falcon.HTTPMissingHeader:
  print 'Missing header'
except falcon.HTTPMissingParam:
  print 'Missing param'
# Prints "Missing param"
```

Basically, calling `get_header()` with `required=True` should raise a `HTTPMissingHeader` exception, when actually what gets raised is `HTTPMissingParam`.

This also leads to confusing error response messages, since the response title and header refer to a missing, required "query parameter" instead of a "header".


Changed files:
tests/test_headers.py, falcon/request.py, tests/test_query_params.py

diff --git a/falcon/request.py b/falcon/request.py
index b16e154..74915a0 100644
--- a/falcon/request.py
+++ b/falcon/request.py
@@ -599,7 +599,7 @@ class Request(object):
             if not required:
                 return None
 
-            raise HTTPMissingParam(name)
+            raise HTTPMissingHeader(name)
 
     def get_header_as_datetime(self, header, required=False):
         """Return an HTTP header with HTTP-Date values as a datetime.
diff --git a/tests/test_headers.py b/tests/test_headers.py
index f2a689a..654eee9 100644
--- a/tests/test_headers.py
+++ b/tests/test_headers.py
@@ -183,9 +183,14 @@ class TestHeaders(testing.TestBase):
     def test_required_header(self):
         self.simulate_request(self.test_route)
 
-        self.assertRaises(falcon.HTTPBadRequest,
-                          self.resource.req.get_header, 'X-Not-Found',
-                          required=True)
+        try:
+            self.resource.req.get_header('X-Not-Found', required=True)
+            self.fail('falcon.HTTPMissingHeader not raised')
+        except falcon.HTTPMissingHeader as ex:
+            self.assertIsInstance(ex, falcon.HTTPBadRequest)
+            self.assertEqual(ex.title, 'Missing header value')
+            expected_desc = 'The X-Not-Found header is required.'
+            self.assertEqual(ex.description, expected_desc)
 
     def test_no_body_on_100(self):
         self.resource = StatusTestResource(falcon.HTTP_100)
diff --git a/tests/test_query_params.py b/tests/test_query_params.py
index 893afda..d6adbf8 100644
--- a/tests/test_query_params.py
+++ b/tests/test_query_params.py
@@ -94,6 +94,7 @@ class _TestQueryParams(testing.TestBase):
             getattr(req, method_name)('marker', required=True)
             self.fail('falcon.HTTPMissingParam not raised')
         except falcon.HTTPMissingParam as ex:
+            self.assertIsInstance(ex, falcon.HTTPBadRequest)
             self.assertEqual(ex.title, 'Missing query parameter')
             expected_desc = 'The "marker" query parameter is required.'
             self.assertEqual(ex.description, expected_desc)
Repository: falconry/falcon
Issue: Request.client_accepts_msgpack only supports 'application/x-msgpack'

The use of the 'x-' prefix is now discouraged for media types. We should update this Request property to also return True for 'application/msgpack', and verify the change with additional tests.


Changed files:
tests/test_req_vars.py, falcon/request.py

diff --git a/falcon/request.py b/falcon/request.py
index 54be8c0..bd83227 100644
--- a/falcon/request.py
+++ b/falcon/request.py
@@ -353,7 +353,8 @@ class Request(object):
 
     @property
     def client_accepts_msgpack(self):
-        return self.client_accepts('application/x-msgpack')
+        return (self.client_accepts('application/x-msgpack')
+                or self.client_accepts('application/msgpack'))
 
     @property
     def client_accepts_xml(self):
diff --git a/tests/test_req_vars.py b/tests/test_req_vars.py
index 9e88754..c71f02e 100644
--- a/tests/test_req_vars.py
+++ b/tests/test_req_vars.py
@@ -348,6 +348,12 @@ class TestReqVars(testing.TestBase):
         self.assertFalse(req.client_accepts_json)
         self.assertTrue(req.client_accepts_msgpack)
 
+        headers = {'Accept': 'application/msgpack'}
+        req = Request(testing.create_environ(headers=headers))
+        self.assertFalse(req.client_accepts_xml)
+        self.assertFalse(req.client_accepts_json)
+        self.assertTrue(req.client_accepts_msgpack)
+
         headers = {
             'Accept': 'application/json,application/xml,application/x-msgpack'
         }
Repository: falconry/falcon
Issue: Not all modules are cythonized

Missing some modules, such as hooks and those in the util package.


Changed files:
setup.py

diff --git a/setup.py b/setup.py
index 254ca4b..f93e3ea 100644
--- a/setup.py
+++ b/setup.py
@@ -1,8 +1,12 @@
+import glob
 import imp
 import io
-import sys
+import os
 from os import path
 from setuptools import setup, find_packages, Extension
+import sys
+
+MYDIR = path.abspath(os.path.dirname(__file__))
 
 VERSION = imp.load_source('version', path.join('.', 'falcon', 'version.py'))
 VERSION = VERSION.__version__
@@ -29,22 +33,29 @@ if not PYPY:
         CYTHON = False
 
 if CYTHON:
-    ext_names = (
-        'api',
-        'api_helpers',
-        'errors',
-        'http_error',
-        'request',
-        'request_helpers',
-        'responders',
-        'response',
-        'response_helpers',
-    )
+    def list_modules(dirname):
+        filenames = glob.glob(path.join(dirname, '*.py'))
+
+        module_names = []
+        for name in filenames:
+            module, ext = path.splitext(path.basename(name))
+            if module != '__init__':
+                module_names.append(module)
+
+        return module_names
 
-    cmdclass = {'build_ext': build_ext}
     ext_modules = [
         Extension('falcon.' + ext, [path.join('falcon', ext + '.py')])
-        for ext in ext_names]
+        for ext in list_modules(path.join(MYDIR, 'falcon'))]
+
+    ext_modules += [
+        Extension('falcon.util.' + ext,
+                  [path.join('falcon', 'util', ext + '.py')])
+
+        for ext in list_modules(path.join(MYDIR, 'falcon', 'util'))]
+
+    cmdclass = {'build_ext': build_ext}
+
 else:
     cmdclass = {}
     ext_modules = []
Repository: openmined/pysyft
Issue: Dim does not work with multipointer tensors

**Describe the bug**
Calling dim on a multipointer tensor returns a multipointer tensor where the values of the children are all ints. The return signature should be an int

**To Reproduce**
create a multipointer tensor and call .dim()

**Expected behavior**
the value returned should be an int


Changed files:
syft/frameworks/torch/tensors/interpreters/multi_pointer.py, test/torch/tensors/test_multi_pointer.py

diff --git a/syft/frameworks/torch/tensors/interpreters/multi_pointer.py b/syft/frameworks/torch/tensors/interpreters/multi_pointer.py
index 610500130..986b10c23 100644
--- a/syft/frameworks/torch/tensors/interpreters/multi_pointer.py
+++ b/syft/frameworks/torch/tensors/interpreters/multi_pointer.py
@@ -84,6 +84,12 @@ class MultiPointerTensor(AbstractTensor):
 
         return list(self.child.values())[0].shape
 
+    def dim(self) -> int:
+        """This method fixes the error that the result of dim was a list of ints
+        stored inside a multipointer tensor"""
+
+        return len(self.shape)
+
     def get(self, sum_results: bool = False) -> torch.Tensor:
 
         results = list()
diff --git a/test/torch/tensors/test_multi_pointer.py b/test/torch/tensors/test_multi_pointer.py
index 9d7252512..86fbdff16 100644
--- a/test/torch/tensors/test_multi_pointer.py
+++ b/test/torch/tensors/test_multi_pointer.py
@@ -30,3 +30,12 @@ def test_multi_pointers(workers):
     c = b.get()
     assert len(c) == 2
     assert (c[0] == th.tensor([2, 4, 6, 8, 10])).all
+
+
+def test_dim(workers):
+    bob = workers["bob"]
+    alice = workers["alice"]
+
+    a = th.tensor([1, 2, 3, 4, 5]).send(bob, alice)
+
+    assert a.dim() == 1
Repository: openmined/pysyft
Issue: Inplace methods in TensorBase class not inplace

Some of our inplace methods in the TensorBase class are not inplace.

**Example**
For addition,
Inplace: `self.data += tensor.data`
Not inplace: `self.data = self.data + tensor.data`

**Task**
Modify `__iadd__`, `__isub__`, `__imul__`, `__itruediv__` to be inplace operations following the above example.

Changed files:
syft/tensor.py

diff --git a/syft/tensor.py b/syft/tensor.py
index 800b80b0f..d2913d873 100644
--- a/syft/tensor.py
+++ b/syft/tensor.py
@@ -63,7 +63,7 @@ class TensorBase(object):
             return NotImplemented
 
         tensor = _ensure_tensorbase(tensor)
-        self.data = self.data + tensor.data
+        self.data += tensor.data
         return self
 
     def __sub__(self, tensor):
@@ -80,7 +80,7 @@ class TensorBase(object):
             return NotImplemented
 
         tensor = _ensure_tensorbase(tensor)
-        self.data = self.data - tensor.data
+        self.data -= tensor.data
         return self
 
     def __eq__(self, tensor):
@@ -118,7 +118,7 @@ class TensorBase(object):
             return NotImplemented
 
         tensor = _ensure_tensorbase(tensor)
-        self.data = self.data * tensor.data
+        self.data *= tensor.data
         return self
 
     def __truediv__(self, tensor):
@@ -135,7 +135,7 @@ class TensorBase(object):
             return NotImplemented
 
         tensor = _ensure_tensorbase(tensor)
-        self.data = self.data / tensor.data
+        self.data /= tensor.data
         return self
 
     def abs(self):
Repository: openmined/pysyft
Issue: Matrix Multiplication Broken

Some combination of the following PRs broke Matrix Multiplication 

https://github.com/OpenMined/PySyft/pull/1519
https://github.com/OpenMined/PySyft/pull/1518
https://github.com/OpenMined/PySyft/pull/1515
https://github.com/OpenMined/PySyft/pull/1514

At present, the branch "trask2" still has working matrix multiplication so i plan to add each of these changes to the branch and see which one broke it.

Changed files:
syft/mpc/spdz.py

diff --git a/syft/mpc/spdz.py b/syft/mpc/spdz.py
index 15b0d7921..e8eda407c 100644
--- a/syft/mpc/spdz.py
+++ b/syft/mpc/spdz.py
@@ -236,7 +236,7 @@ def generate_matmul_triple_communication(shapes, workers):
         share.location: share.child for share in s_shares
     }).on(s)
     gp_t = sy._GeneralizedPointerTensor({
-        share.location: share.child for share in r_shares
+        share.location: share.child for share in t_shares
     }).on(t)
     triple = [gp_r, gp_s, gp_t]
     return triple
Repository: openmined/pysyft
Issue: Request code execution fails for a function without arguments

## Description
Impossible to submit an UserCode if the function doesn't have any argument, possible because the InputPolicy is initialized without any input_keys.

## How to Reproduce
```
import syft as sy

worker = sy.Worker(name="test")
node = worker.root_client
client = node.login(email="info@openmined.org", password="changethis")

@sy.syft_function(input_policy=sy.ExactMatch(),
                  output_policy=sy.SingleExecutionExactOutput())
def func():
    return 1

client.api.services.code.request_code_execution(func)
```

## Expected Behavior
This should not fail, currently, the error is:
![image](https://github.com/OpenMined/PySyft/assets/29687796/1d92c02f-7a93-4564-bbf8-689ebd6f45af)


## Additional Context
A workaround for this is submitting a dummy value to have the InputPolicy initialized.

```
import syft as sy

worker = sy.Worker(name="test")
node = worker.root_client
client = node.login(email="info@openmined.org", password="changethis")

import numpy as np
dummy_tensor = np.array([1,2,3])
dummy_action = sy.ActionObject.from_obj(dummy_tensor)
ptr = dummy_action.send(client)

@sy.syft_function(input_policy=sy.ExactMatch(dummy=ptr),
                  output_policy=sy.SingleExecutionExactOutput())
def func(dummy):
    return 1

client.api.services.code.request_code_execution(func)
```


Changed files:
packages/syft/src/syft/service/code/user_code.py

diff --git a/packages/syft/src/syft/service/code/user_code.py b/packages/syft/src/syft/service/code/user_code.py
index 3b2b2acc9..9e57df475 100644
--- a/packages/syft/src/syft/service/code/user_code.py
+++ b/packages/syft/src/syft/service/code/user_code.py
@@ -571,7 +571,7 @@ def add_custom_status(context: TransformContext) -> TransformContext:
         node_view = NodeView(
             node_name=context.node.name, verify_key=context.node.signing_key.verify_key
         )
-        if node_view in input_keys:
+        if node_view in input_keys or len(input_keys) == 0:
             context.output["status"] = UserCodeStatusContext(
                 base_dict={node_view: UserCodeStatus.SUBMITTED}
             )
Repository: openmined/pysyft
Issue: Incorrect Jax Prompt  in Windows.

## Description
In the Install Wizard, during 

`wizard.check_syft`even if jax was installed on windows, the prompt is displayed to install jax again.

The incorrect prompt should be rectified.

Changed files:
packages/hagrid/hagrid/deps.py

diff --git a/packages/hagrid/hagrid/deps.py b/packages/hagrid/hagrid/deps.py
index 66bb3f95c..ee4cdc430 100644
--- a/packages/hagrid/hagrid/deps.py
+++ b/packages/hagrid/hagrid/deps.py
@@ -103,7 +103,8 @@ class DependencySyftOS(Dependency):
     def check(self) -> None:
         self.display = "✅ " + ENVIRONMENT["os"]
         if is_windows():
-            self.issues.append(windows_jaxlib())
+            if not get_pip_package("jaxlib"):
+                self.issues.append(windows_jaxlib())
         elif is_apple_silicon():
             pass
Repository: openmined/pysyft
Issue: Implementation of `__array_ufunc__` for `DataSubjectArray` only supports `__call__`

According to https://numpy.org/doc/stable/reference/arrays.classes.html#numpy.class.__array_ufunc__, implementation of `__array_ufunc__` should support different call `method`s: `__call__`, `reduce`, `reduceat`, `accumulate`, `outer`, `inner`. In our current implementation for `DataSubjectArray` we only support `__call__`. In other words, if users call `np.multiply.reduce` on `DataSubjectArray(["bob", "alice"])` it would be the same as calling `np.multiply`.

https://github.com/OpenMined/PySyft/blob/291e506bec5de63e8fd96153efca9f1e31cc0e50/packages/syft/src/syft/core/adp/data_subject_list.py#L633-L641

See how we don't use the `method` argument passed to `__array_ufunc__` here?

Even though I suspect supporting `reduce`, `reduceat`, `accumulate`, `outer`, `inner` doesn't make sense for `DataSubjectArray`, we should at least throw an error when users try to do that.

This happens with our implementation of `__array_ufunc__` for `PassthroughTensor` too. In `PassthroughTensor`, supporting the other `method`s does make sense. That's why in #7111 I opted to just disable `__array_ufunc__` entirely for now.

@rasswanth-s

Changed files:
packages/syft/src/syft/core/adp/data_subject_list.py

diff --git a/packages/syft/src/syft/core/adp/data_subject_list.py b/packages/syft/src/syft/core/adp/data_subject_list.py
index e2b8d0324..d1a36a463 100644
--- a/packages/syft/src/syft/core/adp/data_subject_list.py
+++ b/packages/syft/src/syft/core/adp/data_subject_list.py
@@ -630,16 +630,6 @@ class DataSubjectArray:
     def rint(self, *args: Any, **kwargs: Any) -> DataSubjectArray:
         return DataSubjectArray(self.data_subjects)
 
-    def __array_ufunc__(self, ufunc, method, *inputs, **kwargs) -> ArrayLike:  # type: ignore
-        method_name = ufunc.__name__
-        method = getattr(self, method_name, None)
-        if method is not None:
-            return method(*inputs, **kwargs)
-        else:
-            raise NotImplementedError(
-                f"Method: {method_name} not implemented in DataSubjectArray"
-            )
-
     @staticmethod
     def from_objs(input_subjects: Union[np.ndarray, list]) -> ArrayLike:
         # TODO: When the user passes the data subjects they might pass it as list
Repository: openmined/pysyft
Issue: Fix ledger test brent method

## Description
FAILED tests/syft/core/adp/data_subject_ledger_test.py::test_cache_indexing_correctness - ValueError: Use of `bounds` is incompatible with 'method=Brent'.
FAILED tests/syft/core/adp/data_subject_ledger_test.py::test_cache_bypass - ValueError: Use of `bounds` is incompatible with 'method=Brent'.

## How to Reproduce
See CI:
https://github.com/OpenMined/PySyft/actions/runs/3842992045/jobs/6544847611
`pytest -s -m 'fast or slow' --cov syft --cov-fail-under 65 -n auto --durations=50`


Changed files:
packages/syft/src/syft/core/adp/data_subject_ledger.py

diff --git a/packages/syft/src/syft/core/adp/data_subject_ledger.py b/packages/syft/src/syft/core/adp/data_subject_ledger.py
index 721d1a5d9..e62f07866 100644
--- a/packages/syft/src/syft/core/adp/data_subject_ledger.py
+++ b/packages/syft/src/syft/core/adp/data_subject_ledger.py
@@ -335,7 +335,7 @@ class DataSubjectLedger(AbstractDataSubjectLedger):
         f = self._get_fake_rdp_func(constant=constant)
         f2 = self._get_alpha_search_function(rdp_compose_func=f)
         results = minimize_scalar(
-            f2, method="Brent", bracket=(1, 2), bounds=[1, np.inf]
+            f2, method="Brent", bracket=(1, 2)#, bounds=[1, np.inf]
         )
 
         return results.x, results.fun
Repository: openmined/pysyft
Issue: Handler Serde

## Description
The `duet.requests.handler` return value is broken currently due to serialization errors.

```
TypeError: You tried to deserialize an unsupported type. This can be caused by several reasons. Either you are actively writing Syft code and forgot to create one, or you are trying to deserialize an object which was serialized using a different version of Syft and the object you tried to deserialize is not supported in this version.
```

## How to Reproduce
Run: `duet.requests.handler`

## Expected Behavior
No error

## Additional Context
We will be refactoring this anyway.

Changed files:
src/syft/util.py, src/syft/core/node/domain/service/request_handler_service.py

diff --git a/src/syft/core/node/domain/service/request_handler_service.py b/src/syft/core/node/domain/service/request_handler_service.py
index 430177cf6..65036794a 100644
--- a/src/syft/core/node/domain/service/request_handler_service.py
+++ b/src/syft/core/node/domain/service/request_handler_service.py
@@ -117,6 +117,7 @@ class UpdateRequestHandlerMessage(ImmediateSyftMessageWithoutReply):
         return UpdateRequestHandlerMessage_PB
 
 
+@bind_protobuf
 class GetAllRequestHandlersMessage(ImmediateSyftMessageWithReply):
     def __init__(
         self, address: Address, reply_to: Address, msg_id: Optional[UID] = None
@@ -188,6 +189,7 @@ class GetAllRequestHandlersMessage(ImmediateSyftMessageWithReply):
         return GetAllRequestHandlersMessage_PB
 
 
+@bind_protobuf
 class GetAllRequestHandlersResponseMessage(ImmediateSyftMessageWithoutReply):
     def __init__(
         self,
diff --git a/src/syft/util.py b/src/syft/util.py
index 5a6a3ad18..2eec53cb2 100644
--- a/src/syft/util.py
+++ b/src/syft/util.py
@@ -34,7 +34,7 @@ def validate_type(_object: object, _type: type, optional: bool = False) -> Any:
 def validate_field(_object: object, _field: str) -> Any:
     object = getattr(_object, _field, None)
 
-    if object:
+    if object is not None:
         return object
 
     traceback_and_raise(f"Object {_object} has no {_field} field set.")
Repository: modin-project/modin
Issue: pandas.core.index is deprecated and will be removed in a future version

### System information
- **OS Platform and Distribution (e.g., Linux Ubuntu 16.04)**:

Ubuntu 19.10 and Windows 10

- **Modin version** (`modin.__version__`):

0.7.2+45.g78395d9

- **Python version**:

Python 3.7.5

- **Code we can use to reproduce**:

Code from #1165 produces a warning about deprecated package 

<!--
You can obtain the Modin version with

python -c "import modin; print(modin.__version__)"
-->

### Describe the problem
<!-- Describe the problem clearly here. -->

Warning message which looks like this:
```
FutureWarning: pandas.core.index is deprecated and will be removed in a future version.  The public classes are available in the top-level namespace.
```
It was introduced in commit https://github.com/pandas-dev/pandas/commit/2892b9540cbb94d13eca3e5f28047ec61256f1b2 in pandas.

### Source code / logs
<!-- Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached. Try to provide a reproducible test case that is the bare minimum necessary to generate the problem. -->


Changed files:
modin/pandas/dataframe.py, modin/__init__.py, modin/engines/base/frame/data.py

diff --git a/modin/__init__.py b/modin/__init__.py
index e8e8ae4dc..351138ed1 100644
--- a/modin/__init__.py
+++ b/modin/__init__.py
@@ -33,11 +33,6 @@ warnings.filterwarnings(
     message="The pandas.datetime class is deprecated and will be removed from pandas in a future version. "
     "Import from datetime module instead.",
 )
-warnings.filterwarnings(
-    "ignore",
-    message="pandas.core.index is deprecated and will be removed in a future version. "
-    "The public classes are available in the top-level namespace.",
-)
 
 
 def get_execution_engine():
diff --git a/modin/engines/base/frame/data.py b/modin/engines/base/frame/data.py
index c2766798d..20032af53 100644
--- a/modin/engines/base/frame/data.py
+++ b/modin/engines/base/frame/data.py
@@ -15,7 +15,7 @@ from itertools import groupby
 import numpy as np
 from operator import itemgetter
 import pandas
-from pandas.core.index import ensure_index
+from pandas.core.indexes.api import ensure_index
 from pandas.core.dtypes.common import is_numeric_dtype
 
 from modin.backends.pandas.query_compiler import PandasQueryCompiler
diff --git a/modin/pandas/dataframe.py b/modin/pandas/dataframe.py
index 21d5a73e6..d587952d1 100644
--- a/modin/pandas/dataframe.py
+++ b/modin/pandas/dataframe.py
@@ -19,7 +19,7 @@ from pandas.core.dtypes.common import (
     is_list_like,
     is_numeric_dtype,
 )
-from pandas.core.index import ensure_index_from_sequences
+from pandas.core.indexes.api import ensure_index_from_sequences
 from pandas.core.indexing import check_bool_indexer
 from pandas.util._validators import validate_bool_kwarg
Repository: modin-project/modin
Issue: DataFrame.astype(int) has no effect

### System information
- **OS Platform and Distribution (e.g., Linux Ubuntu 16.04)**:

Ubuntu 20.04

- **Modin version** (`modin.__version__`):

0.7.3+166.g00f57f1.dirty

- **Python version**:

Python 3.8.2

- **Code we can use to reproduce**:

```python
import modin.pandas as pd

df = pd.DataFrame(index=["row1", "row2", "row3"], columns=["col1"])
df.loc["row1"]["col1"] = 11
df.loc["row2"]["col1"] = 21
df.loc["row3"]["col1"] = 31
print(df)
print(df.dtypes)
df1 = df.astype(int)
print(df1)
print(df1.dtypes)
```

<!--
You can obtain the Modin version with

python -c "import modin; print(modin.__version__)"
-->

### Describe the problem
<!-- Describe the problem clearly here. -->

When DataFrame is first created without any contents, all of its columns are marked as `object` type. Even when it is filled with integers it doesn't change anything. But when `astype(int)` is called, column types should change to `int`. This happens on Pandas but doesn't happen on Modin.

### Source code / logs
<!-- Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached. Try to provide a reproducible test case that is the bare minimum necessary to generate the problem. -->


Changed files:
modin/pandas/test/test_dataframe.py, modin/engines/base/frame/data.py

diff --git a/modin/engines/base/frame/data.py b/modin/engines/base/frame/data.py
index acdf774db..a9950d433 100644
--- a/modin/engines/base/frame/data.py
+++ b/modin/engines/base/frame/data.py
@@ -553,6 +553,8 @@ class BasePandasFrame(object):
                 elif isinstance(new_dtype, str) and new_dtype == "category":
                     new_dtypes = None
                     break
+                else:
+                    new_dtypes[column] = new_dtype
 
         def astype_builder(df):
             return df.astype({k: v for k, v in col_dtypes.items() if k in df})
diff --git a/modin/pandas/test/test_dataframe.py b/modin/pandas/test/test_dataframe.py
index 7a12d00c1..f69fa3b3f 100644
--- a/modin/pandas/test/test_dataframe.py
+++ b/modin/pandas/test/test_dataframe.py
@@ -809,6 +809,14 @@ class TestDataFrameMapMetadata:
         expected_df_casted = expected_df.astype(bad_dtype_dict)
         df_equals(modin_df_casted, expected_df_casted)
 
+        modin_df = pd.DataFrame(index=["row1"], columns=["col1"])
+        modin_df["col1"]["row1"] = 11
+        modin_df_casted = modin_df.astype(int)
+        expected_df = pandas.DataFrame(index=["row1"], columns=["col1"])
+        expected_df["col1"]["row1"] = 11
+        expected_df_casted = expected_df.astype(int)
+        df_equals(modin_df_casted, expected_df_casted)
+
         with pytest.raises(KeyError):
             modin_df.astype({"not_exists": np.uint8})
Repository: modin-project/modin
Issue: Race condition on imports with Ray

On Ray 0.8.3, there is a race condition that will break the imports. Relevant thread in the Ray repo: ray-project/ray#7879

Changed files:
modin/pandas/__init__.py

diff --git a/modin/pandas/__init__.py b/modin/pandas/__init__.py
index e42dbcaa9..75ca624e3 100644
--- a/modin/pandas/__init__.py
+++ b/modin/pandas/__init__.py
@@ -226,6 +226,14 @@ def initialize_ray():
             move_stdlib_ahead_of_site_packages
         )
 
+        # Register a fix to import pandas on all workers before running tasks.
+        # This prevents a race condition between two threads deserializing functions
+        # and trying to import pandas at the same time.
+        def import_pandas(*args):
+            import pandas  # noqa F401
+
+        ray.worker.global_worker.run_function_on_all_workers(import_pandas)
+
 
 if execution_engine == "Ray":
     import ray
Repository: modin-project/modin
Issue: [Ray] `redis_address` parameter of `ray.init` function deprecated

Deprecated since `ray==0.8.4` 

See: https://github.com/ray-project/ray/blob/89aa47012a2e77c7ddcf5b82e1dcdb2fd1d0bed1/python/ray/worker.py#L575

Need to replace `redis_address` with `address` in all place in modin.

Changed files:
stress_tests/test_kaggle_ipynb.py, modin/pandas/__init__.py

diff --git a/modin/pandas/__init__.py b/modin/pandas/__init__.py
index 6e79f2c75..391642735 100644
--- a/modin/pandas/__init__.py
+++ b/modin/pandas/__init__.py
@@ -159,7 +159,7 @@ def initialize_ray():
                 num_cpus=int(num_cpus),
                 include_webui=False,
                 ignore_reinit_error=True,
-                redis_address=redis_address,
+                address=redis_address,
                 redis_password=redis_password,
                 logging_level=100,
             )
@@ -193,7 +193,7 @@ def initialize_ray():
                 ignore_reinit_error=True,
                 plasma_directory=plasma_directory,
                 object_store_memory=object_store_memory,
-                redis_address=redis_address,
+                address=redis_address,
                 redis_password=redis_password,
                 logging_level=100,
                 memory=object_store_memory,
diff --git a/stress_tests/test_kaggle_ipynb.py b/stress_tests/test_kaggle_ipynb.py
index 7ee8032f8..ff0bcd1bc 100644
--- a/stress_tests/test_kaggle_ipynb.py
+++ b/stress_tests/test_kaggle_ipynb.py
@@ -6,7 +6,7 @@ import numpy as np
 import pytest
 
 # import ray
-# ray.init(redis_address="localhost:6379")
+# ray.init(address="localhost:6379")
 
 import modin.pandas as pd
Repository: modin-project/modin
Issue: Truncated PR comments don't have a header

### System information
- **OS Platform and Distribution (e.g., Linux Ubuntu 16.04)**:

Ubuntu 16.04

- **Modin version** (`modin.__version__`):

0.7.3+78.g2d74813

- **Python version**:

Python 3.7.7

- **Code we can use to reproduce**:

<!--
You can obtain the Modin version with

python -c "import modin; print(modin.__version__)"
-->

### Describe the problem
<!-- Describe the problem clearly here. -->

When comment is too long, usually because of failed tests, comment script cuts off its beginning which contains `<details>` and `<summary>` tags. This makes comment text very long inside of PR.

### Source code / logs
<!-- Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached. Try to provide a reproducible test case that is the bare minimum necessary to generate the problem. -->


Changed files:
ci/teamcity/comment_on_pr.py

diff --git a/ci/teamcity/comment_on_pr.py b/ci/teamcity/comment_on_pr.py
index ad4847c3a..b21ea04f3 100644
--- a/ci/teamcity/comment_on_pr.py
+++ b/ci/teamcity/comment_on_pr.py
@@ -40,8 +40,6 @@ split_by_first = (
 split_by_second = "--------------------------------------------------------------------------------------"
 
 for out in pytest_outputs:
-    full_comment += "<details><summary>Tests Logs</summary>\\n"
-    full_comment += "\\n\\n```\\n"
     content = open(out, "r").read()
     full_comment += "".join(
         "".join(
@@ -54,6 +52,7 @@ for out in pytest_outputs:
     )
     if len(full_comment) > 65_000:
         full_comment = full_comment[-65_000:] + "\\n\\n<b>Remaining output truncated<b>\\n\\n"
+    full_comment = "<details><summary>Tests Logs</summary>\\n\\n\\n```\\n" + full_comment
     full_comment += "\\n```\\n\\n</details>\\n"
 if "FAILURES" not in full_comment:
     header += '<h3 align="center">Tests PASSed</h3>\\n\\n'
Repository: modin-project/modin
Issue: Assignment to DataFrame[column][row] does not work

### System information
- **OS Platform and Distribution (e.g., Linux Ubuntu 16.04)**:

Ubuntu 19.10

- **Modin version** (`modin.__version__`):

0.7.3+15.gc09e61f.dirty

- **Python version**:

Python 3.7.5

- **Code we can use to reproduce**:

```python
import pandas as pd
import modin.pandas as mpd

pdf = pd.DataFrame([[1, 2], [4, 5], [7, 8]],
                   index=[0, 1, 2],
                   columns=['index', 'shield'])
mdf = mpd.DataFrame([[1, 2], [4, 5], [7, 8]],
                    index=[0, 1, 2],
                    columns=['index', 'shield'])

print(pdf['index'][0])
print(mdf['index'][0])

pdf['index'][0] = 1000
mdf['index'][0] = 1000

print(pdf['index'][0])
print(mdf['index'][0])
```

<!--
You can obtain the Modin version with

python -c "import modin; print(modin.__version__)"
-->

### Describe the problem
<!-- Describe the problem clearly here. -->

When assignment is done to `DataFrame[column][row]` in Modin it has no effect. I think assignment is done to a copy of `DataFrame[column]` while the original contents of `DataFrame[column]` is not changed. It is possible to write assignment like this: `col = DataFrame[column]; col[row] = value; DataFrame[column] = col` and this works, but plain assignment to `DataFrame[column][row]` doesn't work as expected.

### Source code / logs
<!-- Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached. Try to provide a reproducible test case that is the bare minimum necessary to generate the problem. -->


Changed files:
modin/pandas/test/test_dataframe.py, modin/pandas/series.py

diff --git a/modin/pandas/series.py b/modin/pandas/series.py
index 909b7cf40..b1766d06c 100644
--- a/modin/pandas/series.py
+++ b/modin/pandas/series.py
@@ -323,6 +323,9 @@ class Series(BasePandasDataset):
         self._create_or_update_from_compiler(
             self._query_compiler.setitem(1, key, value), inplace=True
         )
+        # Propagate changes back to parent so that column in dataframe had the same contents
+        if self._parent is not None:
+            self._parent[self.name] = self
 
     def __sub__(self, right):
         return self.sub(right)
diff --git a/modin/pandas/test/test_dataframe.py b/modin/pandas/test/test_dataframe.py
index 63427e626..6520e1fa8 100644
--- a/modin/pandas/test/test_dataframe.py
+++ b/modin/pandas/test/test_dataframe.py
@@ -5111,6 +5111,11 @@ class TestDataFrameIndexing:
 
         df_equals(modin_df, pandas_df)
 
+        modin_df[modin_df.columns[0]][modin_df.index[0]] = 12345
+        pandas_df[pandas_df.columns[0]][pandas_df.index[0]] = 12345
+
+        df_equals(modin_df, pandas_df)
+
     def test_setitem_on_empty_df(self):
         columns = ["id", "max_speed", "health"]
         modin_df = pd.DataFrame(columns=columns)
Repository: modin-project/modin
Issue: Series.name is unset when Series.to_csv function is called

### System information
- **OS Platform and Distribution (e.g., Linux Ubuntu 16.04)**:

Windows 10

- **Modin version** (`modin.__version__`):

0.7.2+84.ga174016.dirty

- **Python version**:

Python 3.7.7

- **Code we can use to reproduce**:

```python
if __name__ == "__main__":
    import modin.pandas as pd

    df = pd.DataFrame([[1, 1.1, 10],
                       [2, 4.4, 20],
                       [3, 7.7, 30]],
                      index=[1, 2, 3],
                      columns=['id', 'max_speed', 'health'])
    s = df['id']
    print(s)
    print(s.name)
    s.to_csv("test.csv", index=False)
    print(s)
    print(s.name)
```

<!--
You can obtain the Modin version with

python -c "import modin; print(modin.__version__)"
-->

### Describe the problem
<!-- Describe the problem clearly here. -->

On Modin `s.name` is None after call to `s.to_csv`.

### Source code / logs
<!-- Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached. Try to provide a reproducible test case that is the bare minimum necessary to generate the problem. -->


Changed files:
modin/pandas/test/test_io.py, modin/pandas/series.py

diff --git a/modin/pandas/series.py b/modin/pandas/series.py
index ae2cad786..a272cc97b 100644
--- a/modin/pandas/series.py
+++ b/modin/pandas/series.py
@@ -76,6 +76,9 @@ class Series(BasePandasDataset):
             )
             if name is None:
                 name = "__reduced__"
+                if isinstance(data, pandas.Series) and data.name is not None:
+                    name = data.name
+
             query_compiler = from_pandas(
                 pandas.DataFrame(
                     pandas.Series(
diff --git a/modin/pandas/test/test_io.py b/modin/pandas/test/test_io.py
index c30f4414d..278ad6860 100644
--- a/modin/pandas/test/test_io.py
+++ b/modin/pandas/test/test_io.py
@@ -1044,7 +1044,7 @@ def test_to_clipboard():
     assert modin_as_clip.equals(pandas_as_clip)
 
 
-def test_to_csv():
+def test_dataframe_to_csv():
     modin_df = create_test_ray_dataframe()
     pandas_df = create_test_pandas_dataframe()
 
@@ -1060,6 +1060,26 @@ def test_to_csv():
     teardown_test_file(TEST_CSV_DF_FILENAME)
 
 
+def test_series_to_csv():
+    modin_df = create_test_ray_dataframe()
+    pandas_df = create_test_pandas_dataframe()
+
+    TEST_CSV_DF_FILENAME = "test_df.csv"
+    TEST_CSV_pandas_FILENAME = "test_pandas.csv"
+
+    modin_s = modin_df["col1"]
+    pandas_s = pandas_df["col1"]
+    modin_s.to_csv(TEST_CSV_DF_FILENAME)
+    pandas_s.to_csv(TEST_CSV_pandas_FILENAME)
+
+    assert modin_df_equals_pandas(modin_s, pandas_s)
+    assert modin_s.name == pandas_s.name
+    assert assert_files_eq(TEST_CSV_DF_FILENAME, TEST_CSV_pandas_FILENAME)
+
+    teardown_test_file(TEST_CSV_pandas_FILENAME)
+    teardown_test_file(TEST_CSV_DF_FILENAME)
+
+
 @pytest.mark.skip(reason="Defaulting to Pandas")
 def test_to_dense():
     modin_df = create_test_ray_dataframe()
Repository: boto/boto3
Issue: S3 object property "size" not available

I'm using boto3-0.0.7. I'm expecting this code to output the sizes of the keys in the bucket:

```
s3 = boto3.resource('s3')
bucket = s3.Bucket(BUCKET)
for o in bucket.objects.all():
  print o.size
```

instead I get this error:

```
Traceback (most recent call last):
  File "./bug_report", line 10, in <module>
    print o.size
  File "/home/glacier/lib/lib/python2.7/site-packages/boto3/resources/factory.py", line 257, in property_loader
    '{0} has no load method'.format(self.__class__.__name__))
boto3.exceptions.ResourceLoadException: s3.ObjectSummary has no load method
```

I'm using a bucket in the eu-central-1 region.


Changed files:
boto3/resources/collection.py, tests/unit/resources/test_model.py, tests/integration/test_s3.py

diff --git a/boto3/resources/collection.py b/boto3/resources/collection.py
index 483c7546..73efe99f 100644
--- a/boto3/resources/collection.py
+++ b/boto3/resources/collection.py
@@ -312,7 +312,7 @@ class CollectionManager(object):
         operation_name = self._model.request.operation
         self._parent = parent
 
-        search_path = model.path
+        search_path = model.resource.path
         self._handler = ResourceHandler(search_path, factory, resource_defs,
             service_model, model.resource, operation_name)
 
diff --git a/tests/integration/test_s3.py b/tests/integration/test_s3.py
index 233ccff8..defb03a0 100644
--- a/tests/integration/test_s3.py
+++ b/tests/integration/test_s3.py
@@ -57,6 +57,9 @@ class TestS3Resource(unittest.TestCase):
         # Lazy-loaded attribute
         self.assertEqual(12, obj.content_length)
 
+        # Load a similar attribute from the collection response
+        self.assertEqual(12, list(bucket.objects.all())[0].size)
+
         # Perform a resource action with a low-level response
         self.assertEqual(b'hello, world',
                          obj.get()['Body'].read())
diff --git a/tests/unit/resources/test_model.py b/tests/unit/resources/test_model.py
index f1e9a5e0..a936c50d 100644
--- a/tests/unit/resources/test_model.py
+++ b/tests/unit/resources/test_model.py
@@ -187,9 +187,9 @@ class TestModels(BaseTestCase):
                         'operation': 'GetFrobList'
                     },
                     'resource': {
-                        'type': 'Frob'
-                    },
-                    'path': 'FrobList[]'
+                        'type': 'Frob',
+                        'path': 'FrobList[]'
+                    }
                 }
             }
         }, {
@@ -202,7 +202,7 @@ class TestModels(BaseTestCase):
         self.assertEqual(model.collections[0].request.operation, 'GetFrobList')
         self.assertEqual(model.collections[0].resource.type, 'Frob')
         self.assertEqual(model.collections[0].resource.model.name, 'Frob')
-        self.assertEqual(model.collections[0].path, 'FrobList[]')
+        self.assertEqual(model.collections[0].resource.path, 'FrobList[]')
 
     def test_waiter(self):
         model = ResourceModel('test', {