{"receipt_id":"agent1-1","seq":1,"branch_id":"agent1","kind":"command","cmd":"git ls-files -z","path":null,"exit_code":0,"stdout_tail":".github/FUNDING.yml\u0000.github/PULL_REQUEST_TEMPLATE.md\u0000.github/workflows/package.yml\u0000.github/workflows/test.yml\u0000.gitignore\u0000CHANGELOG.md\u0000CONTRIBUTING.md\u0000CONTRIBUTORS.md\u0000LICENSE\u0000MANIFEST.in\u0000Makefile\u0000README.md\u0000appveyor.yml\u0000docs/Makefile\u0000docs/editdocs.sh\u0000docs/make.bat\u0000docs/requirements.txt\u0000docs/source/builtin.rst\u0000docs/source/concepts.rst\u0000docs/source/conf.py\u0000docs/source/extension.rst\u0000docs/source/external.rst\u0000docs/source/globbing.rst\u0000docs/source/guide.rst\u0000docs/source/implementers.rst\u0000docs/source/index.rst\u0000docs/source/info.rst\u0000docs/source/interface.rst\u0000docs/source/introduction.rst\u0000docs/source/openers.rst\u0000docs/source/reference.rst\u0000docs/source/reference/appfs.rst\u0000docs/source/reference/base.rst\u0000docs/source/reference/compress.rst\u0000docs/source/reference/copy.rst\u0000docs/source/reference/enums.rst\u0000docs/source/reference/errors.rst\u0000docs/source/reference/filesize.rst\u0000docs/source/reference/ftpfs.rst\u0000docs/source/reference/glob.rst\u0000docs/source/reference/info_objects.rst\u0000docs/source/reference/memoryfs.rst\u0000docs/source/reference/mirror.rst\u0000docs/source/reference/mode.rst\u0000docs/source/reference/mountfs.rst\u0000docs/source/reference/move.rst\u0000docs/source/reference/multifs.rst\u0000docs/source/reference/opener.rst\u0000docs/source/reference/osfs.rst\u0000docs/source/reference/path.rst\u0000docs/source/reference/permissions.rst\u0000docs/source/reference/subfs.rst\u0000docs/source/reference/tarfs.rst\u0000docs/source/reference/tempfs.rst\u0000docs/source/reference/tools.rst\u0000docs/source/reference/tree.rst\u0000docs/source/reference/walk.rst\u0000docs/source/reference/wildcard.rst\u0000docs/source/reference/wrap.rst\u0000docs/source/reference/wrapfs.rst\u0000docs/source/reference/zipfs.rst\u0000docs/source/walking.rst\u0000docs/tree.html\u0000examples/README.txt\u0000examples/count_py.py\u0000examples/find_dups.py\u0000examples/rm_pyc.py\u0000examples/upload.py\u0000fs/__init__.py\u0000fs/_bulk.py\u0000fs/_fscompat.py\u0000fs/_ftp_parse.py\u0000fs/_repr.py\u0000fs/_typing.py\u0000fs/_url_tools.py\u0000fs/_version.py\u0000fs/appfs.py\u0000fs/base.py\u0000fs/compress.py\u0000fs/constants.py\u0000fs/copy.py\u0000fs/enums.py\u0000fs/error_tools.py\u0000fs/errors.py\u0000fs/filesize.py\u0000fs/ftpfs.py\u0000fs/glob.py\u0000fs/info.py\u0000fs/iotools.py\u0000fs/lrucache.py\u0000fs/memoryfs.py\u0000fs/mirror.py\u0000fs/mode.py\u0000fs/mountfs.py\u0000fs/move.py\u0000fs/multifs.py\u0000fs/opener/__init__.py\u0000fs/opener/appfs.py\u0000fs/opener/base.py\u0000fs/opener/errors.py\u0000fs/opener/ftpfs.py\u0000fs/opener/memoryfs.py\u0000fs/opener/osfs.py\u0000fs/opener/parse.py\u0000fs/opener/py.typed\u0000fs/opener/registry.py\u0000fs/opener/tarfs.py\u0000fs/opener/tempfs.py\u0000fs/opener/zipfs.py\u0000fs/osfs.py\u0000fs/path.py\u0000fs/permissions.py\u0000fs/py.typed\u0000fs/subfs.py\u0000fs/tarfs.py\u0000fs/tempfs.py\u0000fs/test.py\u0000fs/time.py\u0000fs/tools.py\u0000fs/tree.py\u0000fs/walk.py\u0000fs/wildcard.py\u0000fs/wrap.py\u0000fs/wrapfs.py\u0000fs/zipfs.py\u0000requirements-readthedocs.txt\u0000setup.cfg\u0000setup.py\u0000tests/__init__.py\u0000tests/mark.py\u0000tests/requirements.txt\u0000tests/test_appfs.py\u0000tests/test_archives.py\u0000tests/test_base.py\u0000tests/test_bulk.py\u0000tests/test_copy.py\u0000tests/test_doctest.py\u0000tests/test_encoding.py\u0000tests/test_enums.py\u0000tests/test_error_tools.py\u0000tests/test_errors.py\u0000tests/test_filesize.py\u0000tests/test_fscompat.py\u0000tests/test_ftp_parse.py\u0000tests/test_ftpfs.py\u0000tests/test_glob.py\u0000tests/test_imports.py\u0000tests/test_info.py\u0000tests/test_iotools.py\u0000tests/test_lrucache.py\u0000tests/test_memoryfs.py\u0000tests/test_mirror.py\u0000tests/test_mode.py\u0000tests/test_mountfs.py\u0000tests/test_move.py\u0000tests/test_multifs.py\u0000tests/test_new_name.py\u0000tests/test_opener.py\u0000tests/test_osfs.py\u0000tests/test_path.py\u0000tests/test_permissions.py\u0000tests/test_subfs.py\u0000tests/test_tarfs.py\u0000tests/test_tempfs.py\u0000tests/test_time.py\u0000tests/test_tools.py\u0000tests/test_tree.py\u0000tests/test_url_tools.py\u0000tests/test_walk.py\u0000tests/test_wildcard.py\u0000tests/test_wrap.py\u0000tests/test_wrapfs.py\u0000tests/test_zipfs.py\u0000","stderr_tail":"","stdout_sha256":"6c787566079079ea6ab66d452bace7a8ca5fef7e486e8dd6e485ffa9faf8f503","log_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/logs/agent1/agent1-1.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T01:27:14.099553Z","duration_s":0.003746,"timed_out":false,"image_before":"bc230a98-942d-4bba-aa48-77d6b5ef8faa","image_after":"9d68dbc5-a3e7-41e6-a111-170910b8dac1","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-2","seq":2,"branch_id":"agent1","kind":"command","cmd":"grep -n \"_parse_ftp_time\" fs/ftpfs.py","path":null,"exit_code":0,"stdout_tail":"588:    def _parse_ftp_time(cls, time_text):\n646:                details[\"modified\"] = cls._parse_ftp_time(facts[\"modify\"])\n648:                details[\"created\"] = cls._parse_ftp_time(facts[\"create\"])\n","stderr_tail":"","stdout_sha256":"a842452f02131b66c7d60a6bc72556b671edb96acc6a39b6ec3af3070ff7ad85","log_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/logs/agent1/agent1-2.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T01:27:26.198300Z","duration_s":0.003298,"timed_out":false,"image_before":"9d68dbc5-a3e7-41e6-a111-170910b8dac1","image_after":"80121224-f6e1-47fa-9a7f-e0c9429f9689","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-3","seq":3,"branch_id":"agent1","kind":"command","cmd":"find . -name \"*.py\" -exec grep -l \"def getmodified\" {} \\;","path":null,"exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","log_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/logs/agent1/agent1-3.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T01:27:31.214519Z","duration_s":0.13487300000000002,"timed_out":false,"image_before":"80121224-f6e1-47fa-9a7f-e0c9429f9689","image_after":"28157de0-fbbc-421a-b96c-1e86faa72184","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-4","seq":4,"branch_id":"agent1","kind":"command","cmd":"grep -n \"test_getinfo_modified\" tests/test_ftpfs.py","path":null,"exit_code":0,"stdout_tail":"264:    def test_getinfo_modified(self):\n","stderr_tail":"","stdout_sha256":"5128d1f16c55ca28f46aeeba13092725e8fdb9936de0a4695d10f219de92d983","log_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/logs/agent1/agent1-4.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T01:27:35.021029Z","duration_s":0.003239,"timed_out":false,"image_before":"28157de0-fbbc-421a-b96c-1e86faa72184","image_after":"1b44f7f7-9a27-4a4c-8ab8-9377ceb08c1e","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-5","seq":5,"branch_id":"agent1","kind":"command","cmd":"grep -n \"test_copy_preserve_time\" tests/test_memoryfs.py","path":null,"exit_code":0,"stdout_tail":"70:    def test_copy_preserve_time(self):\n","stderr_tail":"","stdout_sha256":"d68b757d647f26dd6aa5f00ba8142b3bea82fd2b855d2c9a7311c9ce30dde745","log_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/logs/agent1/agent1-5.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T01:27:39.103570Z","duration_s":0.003256,"timed_out":false,"image_before":"1b44f7f7-9a27-4a4c-8ab8-9377ceb08c1e","image_after":"13afa7f0-5259-4b5a-a756-80295a6aa756","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-6","seq":6,"branch_id":"agent1","kind":"command","cmd":"find . -name \"*.py\" -path \"./fs/*\" -exec grep -l \"def getmodified\" {} \\;","path":null,"exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","log_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/logs/agent1/agent1-6.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T01:27:43.257117Z","duration_s":0.068263,"timed_out":false,"image_before":"13afa7f0-5259-4b5a-a756-80295a6aa756","image_after":"8be837b6-c691-44c2-bcb7-6c9e622809e3","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-7","seq":7,"branch_id":"agent1","kind":"command","cmd":"grep -r \"getmodified\" fs/ | head -10","path":null,"exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","log_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/logs/agent1/agent1-7.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T01:27:45.997130Z","duration_s":0.006417,"timed_out":false,"image_before":"8be837b6-c691-44c2-bcb7-6c9e622809e3","image_after":"42050d07-93af-4e10-aa48-3145fd6ca271","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-8","seq":8,"branch_id":"agent1","kind":"command","cmd":"grep -n \"def.*time\" fs/ftpfs.py","path":null,"exit_code":0,"stdout_tail":"588:    def _parse_ftp_time(cls, time_text):\n","stderr_tail":"","stdout_sha256":"050fdafa6e1956eb2e8a940bcd02b50367068a14d11ca5bda10e51e7191600b8","log_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/logs/agent1/agent1-8.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T01:27:49.182958Z","duration_s":0.003121,"timed_out":false,"image_before":"42050d07-93af-4e10-aa48-3145fd6ca271","image_after":"c894d15f-bf72-4c46-b466-65c169b80eeb","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-9","seq":9,"branch_id":"agent1","kind":"command","cmd":"grep -n \"def get\" fs/ftpfs.py | head -10","path":null,"exit_code":0,"stdout_tail":"533:    def geturl(self, path, purpose=\"download\"):\n657:    def getinfo(self, path, namespaces=None):\n688:    def getmeta(self, namespace=\"standard\"):\n","stderr_tail":"","stdout_sha256":"73469b22941e4a7dc10a27a63eb8c142e4fe8abee8b886f2c98690c206fd683b","log_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/logs/agent1/agent1-9.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T01:27:51.344475Z","duration_s":0.004699,"timed_out":false,"image_before":"c894d15f-bf72-4c46-b466-65c169b80eeb","image_after":"465c3303-d442-49a1-a8ba-c8ba7982d558","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-10","seq":10,"branch_id":"agent1","kind":"command","cmd":"grep -i \"mdtm\" fs/ftpfs.py","path":null,"exit_code":1,"stdout_tail":"","stderr_tail":"","stdout_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","log_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/logs/agent1/agent1-10.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T01:27:57.946039Z","duration_s":0.003297,"timed_out":false,"image_before":"465c3303-d442-49a1-a8ba-c8ba7982d558","image_after":"5e2a3a69-a3b1-4081-96df-5746f00ba98a","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-11","seq":11,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-a2c8e285da4b40aa82e0c19ccb68018f/bin/busybox sh -c 'mkdir -p /pyfilesystem2/fs && cp /opt/receipts-a2c8e285da4b40aa82e0c19ccb68018f/incoming/72a5412597d5f78496a7b4a3f244d53b6bd406da49147137234c0309d837a39a /pyfilesystem2/fs/ftpfs.py'","path":"fs/ftpfs.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"72a5412597d5f78496a7b4a3f244d53b6bd406da49147137234c0309d837a39a","log_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/logs/agent1/agent1-11.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T01:28:03.971659Z","duration_s":0.004799,"timed_out":false,"image_before":"5e2a3a69-a3b1-4081-96df-5746f00ba98a","image_after":"52925c76-104f-47af-8aa3-760cd3ecceab","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-12","seq":12,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-60699bf4ec9e456aa5516748fae9e795/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-60699bf4ec9e456aa5516748fae9e795/receipts_pytest.py tests/test_ftpfs.py::TestFTPFS::test_getinfo_modified -v -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-12.xml","path":null,"exit_code":1,"stdout_tail":"============================= test session starts ==============================\nplatform linux -- Python 3.10.19, pytest-9.0.2, pluggy-1.6.0 -- /usr/local/bin/python\nrootdir: /pyfilesystem2\nconfigfile: setup.cfg\ncollecting ... collected 1 item\n\ntests/test_ftpfs.py::TestFTPFS::test_getinfo_modified PASSED             [100%]\ntests/test_ftpfs.py::TestFTPFS::test_getinfo_modified ERROR              [100%]\n\n==================================== ERRORS ====================================\n_____________ ERROR at teardown of TestFTPFS.test_getinfo_modified _____________\n\ncls = <class 'tests.test_ftpfs.TestFTPFS'>\n\n    @classmethod\n    def tearDownClass(cls):\n>       cls.server.stop()\n\ntests/test_ftpfs.py:180: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n/usr/local/lib/python3.10/site-packages/pyftpdlib/test/__init__.py:484: in stop\n    assert_free_resources(self.parent_pid)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nparent_pid = 10\n\n    def assert_free_resources(parent_pid=None):\n        # check orphaned threads\n        ts = threading.enumerate()\n        assert len(ts) == 1, ts\n        # check orphaned process children\n        this_proc = psutil.Process(parent_pid or os.getpid())\n        children = this_proc.children()\n        if children:\n            warnings.warn(\n                \"some children didn't terminate %r\" % str(children),\n                UserWarning,\n                stacklevel=2,\n            )\n            for child in children:\n                try:\n                    child.kill()\n                    child.wait(GLOBAL_TIMEOUT)\n                except psutil.NoSuchProcess:\n                    pass\n        # check unclosed connections\n        if POSIX:\n            cons = [\n                x\n>               for x in this_proc.net_connections('tcp')\n                if x.status != psutil.CONN_CLOSE_WAIT\n            ]\nE           AttributeError: 'Process' object has no attribute 'net_connections'. Did you mean: 'connections'?\n\n/usr/local/lib/python3.10/site-packages/pyftpdlib/test/__init__.py:382: AttributeError\n=============================== warnings summary ===============================\nfs/__init__.py:4\n  /pyfilesystem2/fs/__init__.py:4: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n    __import__(\"pkg_resources\").declare_namespace(__name__)  # type: ignore\n\nfs/__init__.py:4\n  /pyfilesystem2/fs/__init__.py:4: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('fs')`.\n  Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages\n    __import__(\"pkg_resources\").declare_namespace(__name__)  # type: ignore\n\nfs/opener/__init__.py:6\n  /pyfilesystem2/fs/opener/__init__.py:6: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('fs.opener')`.\n  Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages\n    __import__(\"pkg_resources\").declare_namespace(__name__)  # type: ignore\n\n../usr/local/lib/python3.10/site-packages/pkg_resources/__init__.py:2558\n  /usr/local/lib/python3.10/site-packages/pkg_resources/__init__.py:2558: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('fs')`.\n  Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages\n    declare_namespace(parent)\n\n-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html\n==================================== PASSES ====================================\n----------- generated xml file: /opt/receipts/reports/agent1-12.xml ------------\n=========================== short test summary info ============================\nPASSED tests/test_ftpfs.py::TestFTPFS::test_getinfo_modified\nERROR tests/test_ftpfs.py::TestFTPFS::test_getinfo_modified - AttributeError:...\n==================== 1 passed, 4 warnings, 1 error in 0.54s ====================\n","stderr_tail":"","stdout_sha256":"dc1abfcea672fbf877f12c94d203712b8ae7a54bd79e328a8f077ae031f529d1","log_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/logs/agent1/agent1-12.log","tree_digest":"8c94121772dcfe8ea15a572545daf5ce36463a5ff10b2850bb9cb6f6ac9c4c29","tree_download_s":2.326450749998912,"started_at":"2026-10-03T01:28:08.687283Z","duration_s":0.844959,"timed_out":false,"image_before":"52925c76-104f-47af-8aa3-760cd3ecceab","image_after":"4b733962-3b7d-4b1e-ab48-0cc4244c1437","junit":{"passed":[],"failed":[],"errors":["tests/test_ftpfs.py::TestFTPFS::test_getinfo_modified"],"skipped":[],"collection_errors":[],"failure_text":{"tests/test_ftpfs.py::TestFTPFS::test_getinfo_modified":"failed on teardown with \"AttributeError: 'Process' object has no attribute 'net_connections'. Did you mean: 'connections'?\"\ncls = <class 'tests.test_ftpfs.TestFTPFS'>\n\n    @classmethod\n    def tearDownClass(cls):\n>       cls.server.stop()\n\ntests/test_ftpfs.py:180: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n/usr/local/lib/python3.10/site-packages/pyftpdlib/test/__init__.py:484: in stop\n    assert_free_resources(self.parent_pid)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nparent_pid = 10\n\n    def assert_free_resources(parent_pid=None):\n        # check orphaned threads\n        ts = threading.enumerate()\n        assert len(ts) == 1, ts\n        # check orphaned process children\n        this_proc = psutil.Process(parent_pid or os.getpid())\n        children = this_proc.children()\n        if children:\n            warnings.warn(\n                \"some children didn't terminate %r\" % str(children),\n                UserWarning,\n                stacklevel=2,\n            )\n            for child in children:\n                try:\n                    child.kill()\n                    child.wait(GLOBAL_TIMEOUT)\n                except psutil.NoSuchProcess:\n                    pass\n        # check unclosed connections\n        if POSIX:\n            cons = [\n                x\n>               for x in this_proc.net_connections('tcp')\n                if x.status != psutil.CONN_CLOSE_WAIT\n            ]\nE           AttributeError: 'Process' object has no attribute 'net_connections'. Did you mean: 'connections'?\n\n/usr/local/lib/python3.10/site-packages/pyftpdlib/test/__init__.py:382: AttributeError"}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-13","seq":13,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-2120990d4f7645dd941604c727d8aa61/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-2120990d4f7645dd941604c727d8aa61/receipts_pytest.py tests/test_ftpfs.py::TestFTPFSNoMLSD::test_getinfo_modified -v -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-13.xml","path":null,"exit_code":1,"stdout_tail":"============================= test session starts ==============================\nplatform linux -- Python 3.10.19, pytest-9.0.2, pluggy-1.6.0 -- /usr/local/bin/python\nrootdir: /pyfilesystem2\nconfigfile: setup.cfg\ncollecting ... collected 1 item\n\ntests/test_ftpfs.py::TestFTPFSNoMLSD::test_getinfo_modified PASSED       [100%]\ntests/test_ftpfs.py::TestFTPFSNoMLSD::test_getinfo_modified ERROR        [100%]\n\n==================================== ERRORS ====================================\n__________ ERROR at teardown of TestFTPFSNoMLSD.test_getinfo_modified __________\n\ncls = <class 'tests.test_ftpfs.TestFTPFSNoMLSD'>\n\n    @classmethod\n    def tearDownClass(cls):\n>       cls.server.stop()\n\ntests/test_ftpfs.py:180: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n/usr/local/lib/python3.10/site-packages/pyftpdlib/test/__init__.py:484: in stop\n    assert_free_resources(self.parent_pid)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nparent_pid = 11\n\n    def assert_free_resources(parent_pid=None):\n        # check orphaned threads\n        ts = threading.enumerate()\n        assert len(ts) == 1, ts\n        # check orphaned process children\n        this_proc = psutil.Process(parent_pid or os.getpid())\n        children = this_proc.children()\n        if children:\n            warnings.warn(\n                \"some children didn't terminate %r\" % str(children),\n                UserWarning,\n                stacklevel=2,\n            )\n            for child in children:\n                try:\n                    child.kill()\n                    child.wait(GLOBAL_TIMEOUT)\n                except psutil.NoSuchProcess:\n                    pass\n        # check unclosed connections\n        if POSIX:\n            cons = [\n                x\n>               for x in this_proc.net_connections('tcp')\n                if x.status != psutil.CONN_CLOSE_WAIT\n            ]\nE           AttributeError: 'Process' object has no attribute 'net_connections'. Did you mean: 'connections'?\n\n/usr/local/lib/python3.10/site-packages/pyftpdlib/test/__init__.py:382: AttributeError\n=============================== warnings summary ===============================\nfs/__init__.py:4\n  /pyfilesystem2/fs/__init__.py:4: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n    __import__(\"pkg_resources\").declare_namespace(__name__)  # type: ignore\n\nfs/__init__.py:4\n  /pyfilesystem2/fs/__init__.py:4: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('fs')`.\n  Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages\n    __import__(\"pkg_resources\").declare_namespace(__name__)  # type: ignore\n\nfs/opener/__init__.py:6\n  /pyfilesystem2/fs/opener/__init__.py:6: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('fs.opener')`.\n  Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages\n    __import__(\"pkg_resources\").declare_namespace(__name__)  # type: ignore\n\n../usr/local/lib/python3.10/site-packages/pkg_resources/__init__.py:2558\n  /usr/local/lib/python3.10/site-packages/pkg_resources/__init__.py:2558: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('fs')`.\n  Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages\n    declare_namespace(parent)\n\n-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html\n==================================== PASSES ====================================\n----------- generated xml file: /opt/receipts/reports/agent1-13.xml ------------\n=========================== short test summary info ============================\nPASSED tests/test_ftpfs.py::TestFTPFSNoMLSD::test_getinfo_modified\nERROR tests/test_ftpfs.py::TestFTPFSNoMLSD::test_getinfo_modified - Attribute...\n==================== 1 passed, 4 warnings, 1 error in 0.57s ====================\n","stderr_tail":"","stdout_sha256":"f592c6aaa38ef222139543e0a8a261a80c684c1f52cd6a70712ee302c140b7b9","log_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/logs/agent1/agent1-13.log","tree_digest":"8c94121772dcfe8ea15a572545daf5ce36463a5ff10b2850bb9cb6f6ac9c4c29","tree_download_s":2.2284630411304533,"started_at":"2026-10-03T01:28:15.969121Z","duration_s":0.865899,"timed_out":false,"image_before":"4b733962-3b7d-4b1e-ab48-0cc4244c1437","image_after":"b0489195-a221-45c4-88db-574e888a9954","junit":{"passed":[],"failed":[],"errors":["tests/test_ftpfs.py::TestFTPFSNoMLSD::test_getinfo_modified"],"skipped":[],"collection_errors":[],"failure_text":{"tests/test_ftpfs.py::TestFTPFSNoMLSD::test_getinfo_modified":"failed on teardown with \"AttributeError: 'Process' object has no attribute 'net_connections'. Did you mean: 'connections'?\"\ncls = <class 'tests.test_ftpfs.TestFTPFSNoMLSD'>\n\n    @classmethod\n    def tearDownClass(cls):\n>       cls.server.stop()\n\ntests/test_ftpfs.py:180: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n/usr/local/lib/python3.10/site-packages/pyftpdlib/test/__init__.py:484: in stop\n    assert_free_resources(self.parent_pid)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nparent_pid = 11\n\n    def assert_free_resources(parent_pid=None):\n        # check orphaned threads\n        ts = threading.enumerate()\n        assert len(ts) == 1, ts\n        # check orphaned process children\n        this_proc = psutil.Process(parent_pid or os.getpid())\n        children = this_proc.children()\n        if children:\n            warnings.warn(\n                \"some children didn't terminate %r\" % str(children),\n                UserWarning,\n                stacklevel=2,\n            )\n            for child in children:\n                try:\n                    child.kill()\n                    child.wait(GLOBAL_TIMEOUT)\n                except psutil.NoSuchProcess:\n                    pass\n        # check unclosed connections\n        if POSIX:\n            cons = [\n                x\n>               for x in this_proc.net_connections('tcp')\n                if x.status != psutil.CONN_CLOSE_WAIT\n            ]\nE           AttributeError: 'Process' object has no attribute 'net_connections'. Did you mean: 'connections'?\n\n/usr/local/lib/python3.10/site-packages/pyftpdlib/test/__init__.py:382: AttributeError"}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-14","seq":14,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-3cfce313ee614107b11b047f10499d5f/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-3cfce313ee614107b11b047f10499d5f/receipts_pytest.py tests/test_memoryfs.py::TestMemoryFS::test_copy_preserve_time -v -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-14.xml","path":null,"exit_code":1,"stdout_tail":"============================= test session starts ==============================\nplatform linux -- Python 3.10.19, pytest-9.0.2, pluggy-1.6.0 -- /usr/local/bin/python\nrootdir: /pyfilesystem2\nconfigfile: setup.cfg\ncollecting ... collected 1 item\n\ntests/test_memoryfs.py::TestMemoryFS::test_copy_preserve_time FAILED     [100%]\n\n=================================== FAILURES ===================================\n_____________________ TestMemoryFS.test_copy_preserve_time _____________________\n\nself = <tests.test_memoryfs.TestMemoryFS testMethod=test_copy_preserve_time>\n\n    def test_copy_preserve_time(self):\n        self.fs.makedir(\"foo\")\n        self.fs.makedir(\"bar\")\n        self.fs.touch(\"foo/file.txt\")\n    \n>       src_datetime = self.fs.getmodified(\"foo/file.txt\")\nE       AttributeError: 'MemoryFS' object has no attribute 'getmodified'\n\ntests/test_memoryfs.py:75: AttributeError\n=============================== warnings summary ===============================\nfs/__init__.py:4\n  /pyfilesystem2/fs/__init__.py:4: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n    __import__(\"pkg_resources\").declare_namespace(__name__)  # type: ignore\n\nfs/__init__.py:4\n  /pyfilesystem2/fs/__init__.py:4: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('fs')`.\n  Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages\n    __import__(\"pkg_resources\").declare_namespace(__name__)  # type: ignore\n\nfs/opener/__init__.py:6\n  /pyfilesystem2/fs/opener/__init__.py:6: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('fs.opener')`.\n  Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages\n    __import__(\"pkg_resources\").declare_namespace(__name__)  # type: ignore\n\n../usr/local/lib/python3.10/site-packages/pkg_resources/__init__.py:2558\n  /usr/local/lib/python3.10/site-packages/pkg_resources/__init__.py:2558: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('fs')`.\n  Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages\n    declare_namespace(parent)\n\n-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html\n----------- generated xml file: /opt/receipts/reports/agent1-14.xml ------------\n=========================== short test summary info ============================\nFAILED tests/test_memoryfs.py::TestMemoryFS::test_copy_preserve_time - Attrib...\n======================== 1 failed, 4 warnings in 0.37s =========================\n","stderr_tail":"","stdout_sha256":"691ab5b5fe4ad794b4782129e281a2e93e3f77fe654f01cbfeda0bd80001901e","log_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/logs/agent1/agent1-14.log","tree_digest":"8c94121772dcfe8ea15a572545daf5ce36463a5ff10b2850bb9cb6f6ac9c4c29","tree_download_s":1.6584584170486778,"started_at":"2026-10-03T01:28:23.120998Z","duration_s":0.6970259999999999,"timed_out":false,"image_before":"b0489195-a221-45c4-88db-574e888a9954","image_after":"e21c8ddc-2fcc-4cef-b28e-75866645a3f7","junit":{"passed":[],"failed":["tests/test_memoryfs.py::TestMemoryFS::test_copy_preserve_time"],"errors":[],"skipped":[],"collection_errors":[],"failure_text":{"tests/test_memoryfs.py::TestMemoryFS::test_copy_preserve_time":"AttributeError: 'MemoryFS' object has no attribute 'getmodified'\nself = <tests.test_memoryfs.TestMemoryFS testMethod=test_copy_preserve_time>\n\n    def test_copy_preserve_time(self):\n        self.fs.makedir(\"foo\")\n        self.fs.makedir(\"bar\")\n        self.fs.touch(\"foo/file.txt\")\n    \n>       src_datetime = self.fs.getmodified(\"foo/file.txt\")\nE       AttributeError: 'MemoryFS' object has no attribute 'getmodified'\n\ntests/test_memoryfs.py:75: AttributeError"}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-15","seq":15,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-54b857cd623040fab42d2ae2d6ab174d/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-54b857cd623040fab42d2ae2d6ab174d/receipts_pytest.py tests/test_ftpfs.py -v --tb=no -q -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-15.xml","path":null,"exit_code":1,"stdout_tail":"FTPFSNoMLSD::test_root_dir\nPASSED tests/test_ftpfs.py::TestFTPFSNoMLSD::test_scandir\nPASSED tests/test_ftpfs.py::TestFTPFSNoMLSD::test_setinfo\nPASSED tests/test_ftpfs.py::TestFTPFSNoMLSD::test_settimes\nPASSED tests/test_ftpfs.py::TestFTPFSNoMLSD::test_touch\nPASSED tests/test_ftpfs.py::TestFTPFSNoMLSD::test_tree\nPASSED tests/test_ftpfs.py::TestFTPFSNoMLSD::test_unicode_path\nPASSED tests/test_ftpfs.py::TestFTPFSNoMLSD::test_upload\nPASSED tests/test_ftpfs.py::TestFTPFSNoMLSD::test_upload_0\nPASSED tests/test_ftpfs.py::TestFTPFSNoMLSD::test_upload_1\nPASSED tests/test_ftpfs.py::TestFTPFSNoMLSD::test_upload_2\nPASSED tests/test_ftpfs.py::TestFTPFSNoMLSD::test_upload_4\nPASSED tests/test_ftpfs.py::TestFTPFSNoMLSD::test_upload_chunk_size\nPASSED tests/test_ftpfs.py::TestFTPFSNoMLSD::test_upload_connection\nPASSED tests/test_ftpfs.py::TestFTPFSNoMLSD::test_validatepath\nPASSED tests/test_ftpfs.py::TestFTPFSNoMLSD::test_writebytes\nPASSED tests/test_ftpfs.py::TestFTPFSNoMLSD::test_writefile\nPASSED tests/test_ftpfs.py::TestFTPFSNoMLSD::test_writetext\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_appendbytes\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_appendtext\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_basic\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_bin_files\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_close\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_copy\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_copy_dir_mem\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_copy_dir_temp\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_copy_file\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_copy_structure\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_copydir\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_create\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_desc\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_download\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_download_0\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_download_1\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_download_2\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_download_4\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_download_chunk_size\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_exists\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_files\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_filterdir\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_ftp_url\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_getinfo\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_getmeta\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_getsize\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_getsyspath\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_geturl\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_geturl_purpose\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_glob\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_hash\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_invalid_chars\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_isdir\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_isempty\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_isfile\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_islink\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_listdir\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_makedir\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_makedirs\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_match\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_move\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_move_dir_mem\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_move_dir_temp\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_move_file_mem\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_move_file_same_fs\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_move_file_temp\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_move_same_fs\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_movedir\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_open\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_open_exclusive\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_open_files\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_openbin\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_openbin_exclusive\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_openbin_rw\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_opendir\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_readbytes\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_readtext\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_remove\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_removedir\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_removetree\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_removetree_root\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_repeat_dir\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_root_dir\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_scandir\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_setinfo\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_settimes\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_touch\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_tree\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_unicode_path\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_upload\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_upload_0\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_upload_1\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_upload_2\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_upload_4\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_upload_chunk_size\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_validatepath\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_writebytes\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_writefile\nPASSED tests/test_ftpfs.py::TestAnonFTPFS::test_writetext\nSKIPPED [3] fs/test.py:1879: case sensitivity not known\nERROR tests/test_ftpfs.py::TestFTPFS::test_writetext - AttributeError: 'Proce...\nERROR tests/test_ftpfs.py::TestFTPFSNoMLSD::test_writetext - AttributeError: ...\nERROR tests/test_ftpfs.py::TestAnonFTPFS::test_writetext - AttributeError: 'P...\n============= 256 passed, 3 skipped, 7 warnings, 3 errors in 8.38s =============\n","stderr_tail":"","stdout_sha256":"07ebb254feca4befcd4b8068a33c64fac0a9598923c0ee74adb533983c2e89ff","log_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/logs/agent1/agent1-15.log","tree_digest":"8c94121772dcfe8ea15a572545daf5ce36463a5ff10b2850bb9cb6f6ac9c4c29","tree_download_s":2.504564458038658,"started_at":"2026-10-03T01:28:33.007625Z","duration_s":5.880048,"timed_out":false,"image_before":"e21c8ddc-2fcc-4cef-b28e-75866645a3f7","image_after":"0768eba8-78fc-4c85-918a-c277fd256654","junit":{"passed":["tests/test_ftpfs.py::TestFTPFSClass::test_opener","tests/test_ftpfs.py::TestFTPFSClass::test_parse_ftp_time","tests/test_ftpfs.py::TestFTPFSClass::test_parse_mlsx","tests/test_ftpfs.py::TestFTPFSClass::test_parse_mlsx_type","tests/test_ftpfs.py::TestFTPErrors::test_manager","tests/test_ftpfs.py::TestFTPErrors::test_manager_with_host","fs/test.py::tests::test_ftpfs::TestFTPFS::test_appendbytes","fs/test.py::tests::test_ftpfs::TestFTPFS::test_appendtext","fs/test.py::tests::test_ftpfs::TestFTPFS::test_basic","fs/test.py::tests::test_ftpfs::TestFTPFS::test_bin_files","fs/test.py::tests::test_ftpfs::TestFTPFS::test_close","tests/test_ftpfs.py::TestFTPFS::test_connection_error","fs/test.py::tests::test_ftpfs::TestFTPFS::test_copy","fs/test.py::tests::test_ftpfs::TestFTPFS::test_copy_dir_mem","fs/test.py::tests::test_ftpfs::TestFTPFS::test_copy_dir_temp","fs/test.py::tests::test_ftpfs::TestFTPFS::test_copy_file","fs/test.py::tests::test_ftpfs::TestFTPFS::test_copy_structure","fs/test.py::tests::test_ftpfs::TestFTPFS::test_copydir","tests/test_ftpfs.py::TestFTPFS::test_create","fs/test.py::tests::test_ftpfs::TestFTPFS::test_desc","fs/test.py::tests::test_ftpfs::TestFTPFS::test_download","fs/test.py::tests::test_ftpfs::TestFTPFS::test_download_0","fs/test.py::tests::test_ftpfs::TestFTPFS::test_download_1","fs/test.py::tests::test_ftpfs::TestFTPFS::test_download_2","fs/test.py::tests::test_ftpfs::TestFTPFS::test_download_4","fs/test.py::tests::test_ftpfs::TestFTPFS::test_download_chunk_size","fs/test.py::tests::test_ftpfs::TestFTPFS::test_exists","fs/test.py::tests::test_ftpfs::TestFTPFS::test_files","fs/test.py::tests::test_ftpfs::TestFTPFS::test_filterdir","tests/test_ftpfs.py::TestFTPFS::test_ftp_url","fs/test.py::tests::test_ftpfs::TestFTPFS::test_getinfo","tests/test_ftpfs.py::TestFTPFS::test_getinfo_modified","fs/test.py::tests::test_ftpfs::TestFTPFS::test_getmeta","tests/test_ftpfs.py::TestFTPFS::test_getmeta_unicode_path","fs/test.py::tests::test_ftpfs::TestFTPFS::test_getsize","fs/test.py::tests::test_ftpfs::TestFTPFS::test_getsyspath","tests/test_ftpfs.py::TestFTPFS::test_geturl","fs/test.py::tests::test_ftpfs::TestFTPFS::test_geturl_purpose","fs/test.py::tests::test_ftpfs::TestFTPFS::test_glob","fs/test.py::tests::test_ftpfs::TestFTPFS::test_hash","tests/test_ftpfs.py::TestFTPFS::test_host","fs/test.py::tests::test_ftpfs::TestFTPFS::test_invalid_chars","fs/test.py::tests::test_ftpfs::TestFTPFS::test_isdir","fs/test.py::tests::test_ftpfs::TestFTPFS::test_isempty","fs/test.py::tests::test_ftpfs::TestFTPFS::test_isfile","fs/test.py::tests::test_ftpfs::TestFTPFS::test_islink","fs/test.py::tests::test_ftpfs::TestFTPFS::test_listdir","fs/test.py::tests::test_ftpfs::TestFTPFS::test_makedir","fs/test.py::tests::test_ftpfs::TestFTPFS::test_makedirs","fs/test.py::tests::test_ftpfs::TestFTPFS::test_match","fs/test.py::tests::test_ftpfs::TestFTPFS::test_move","fs/test.py::tests::test_ftpfs::TestFTPFS::test_move_dir_mem","fs/test.py::tests::test_ftpfs::TestFTPFS::test_move_dir_temp","fs/test.py::tests::test_ftpfs::TestFTPFS::test_move_file_mem","fs/test.py::tests::test_ftpfs::TestFTPFS::test_move_file_same_fs","fs/test.py::tests::test_ftpfs::TestFTPFS::test_move_file_temp","fs/test.py::tests::test_ftpfs::TestFTPFS::test_move_same_fs","fs/test.py::tests::test_ftpfs::TestFTPFS::test_movedir","fs/test.py::tests::test_ftpfs::TestFTPFS::test_open","fs/test.py::tests::test_ftpfs::TestFTPFS::test_open_exclusive","fs/test.py::tests::test_ftpfs::TestFTPFS::test_open_files","fs/test.py::tests::test_ftpfs::TestFTPFS::test_openbin","fs/test.py::tests::test_ftpfs::TestFTPFS::test_openbin_exclusive","fs/test.py::tests::test_ftpfs::TestFTPFS::test_openbin_rw","fs/test.py::tests::test_ftpfs::TestFTPFS::test_opendir","tests/test_ftpfs.py::TestFTPFS::test_opener_path","fs/test.py::tests::test_ftpfs::TestFTPFS::test_readbytes","fs/test.py::tests::test_ftpfs::TestFTPFS::test_readtext","fs/test.py::tests::test_ftpfs::TestFTPFS::test_remove","fs/test.py::tests::test_ftpfs::TestFTPFS::test_removedir","fs/test.py::tests::test_ftpfs::TestFTPFS::test_removetree","fs/test.py::tests::test_ftpfs::TestFTPFS::test_removetree_root","fs/test.py::tests::test_ftpfs::TestFTPFS::test_repeat_dir","fs/test.py::tests::test_ftpfs::TestFTPFS::test_root_dir","fs/test.py::tests::test_ftpfs::TestFTPFS::test_scandir","tests/test_ftpfs.py::TestFTPFS::test_setinfo","fs/test.py::tests::test_ftpfs::TestFTPFS::test_settimes","fs/test.py::tests::test_ftpfs::TestFTPFS::test_touch","fs/test.py::tests::test_ftpfs::TestFTPFS::test_tree","fs/test.py::tests::test_ftpfs::TestFTPFS::test_unicode_path","fs/test.py::tests::test_ftpfs::TestFTPFS::test_upload","fs/test.py::tests::test_ftpfs::TestFTPFS::test_upload_0","fs/test.py::tests::test_ftpfs::TestFTPFS::test_upload_1","fs/test.py::tests::test_ftpfs::TestFTPFS::test_upload_2","fs/test.py::tests::test_ftpfs::TestFTPFS::test_upload_4","fs/test.py::tests::test_ftpfs::TestFTPFS::test_upload_chunk_size","tests/test_ftpfs.py::TestFTPFS::test_upload_connection","fs/test.py::tests::test_ftpfs::TestFTPFS::test_validatepath","fs/test.py::tests::test_ftpfs::TestFTPFS::test_writebytes","fs/test.py::tests::test_ftpfs::TestFTPFS::test_writefile","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_appendbytes","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_appendtext","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_basic","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_bin_files","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_close","tests/test_ftpfs.py::TestFTPFSNoMLSD::test_connection_error","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_copy","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_copy_dir_mem","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_copy_dir_temp","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_copy_file","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_copy_structure","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_copydir","tests/test_ftpfs.py::TestFTPFSNoMLSD::test_create","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_desc","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_download","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_download_0","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_download_1","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_download_2","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_download_4","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_download_chunk_size","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_exists","tests/test_ftpfs.py::TestFTPFSNoMLSD::test_features","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_files","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_filterdir","tests/test_ftpfs.py::TestFTPFSNoMLSD::test_ftp_url","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_getinfo","tests/test_ftpfs.py::TestFTPFSNoMLSD::test_getinfo_modified","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_getmeta","tests/test_ftpfs.py::TestFTPFSNoMLSD::test_getmeta_unicode_path","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_getsize","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_getsyspath","tests/test_ftpfs.py::TestFTPFSNoMLSD::test_geturl","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_geturl_purpose","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_glob","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_hash","tests/test_ftpfs.py::TestFTPFSNoMLSD::test_host","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_invalid_chars","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_isdir","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_isempty","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_isfile","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_islink","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_listdir","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_makedir","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_makedirs","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_match","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_move","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_move_dir_mem","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_move_dir_temp","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_move_file_mem","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_move_file_same_fs","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_move_file_temp","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_move_same_fs","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_movedir","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_open","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_open_exclusive","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_open_files","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_openbin","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_openbin_exclusive","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_openbin_rw","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_opendir","tests/test_ftpfs.py::TestFTPFSNoMLSD::test_opener_path","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_readbytes","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_readtext","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_remove","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_removedir","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_removetree","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_removetree_root","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_repeat_dir","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_root_dir","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_scandir","tests/test_ftpfs.py::TestFTPFSNoMLSD::test_setinfo","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_settimes","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_touch","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_tree","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_unicode_path","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_upload","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_upload_0","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_upload_1","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_upload_2","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_upload_4","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_upload_chunk_size","tests/test_ftpfs.py::TestFTPFSNoMLSD::test_upload_connection","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_validatepath","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_writebytes","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_writefile","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_appendbytes","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_appendtext","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_basic","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_bin_files","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_close","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_copy","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_copy_dir_mem","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_copy_dir_temp","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_copy_file","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_copy_structure","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_copydir","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_create","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_desc","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_download","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_download_0","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_download_1","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_download_2","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_download_4","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_download_chunk_size","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_exists","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_files","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_filterdir","tests/test_ftpfs.py::TestAnonFTPFS::test_ftp_url","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_getinfo","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_getmeta","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_getsize","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_getsyspath","tests/test_ftpfs.py::TestAnonFTPFS::test_geturl","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_geturl_purpose","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_glob","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_hash","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_invalid_chars","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_isdir","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_isempty","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_isfile","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_islink","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_listdir","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_makedir","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_makedirs","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_match","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_move","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_move_dir_mem","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_move_dir_temp","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_move_file_mem","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_move_file_same_fs","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_move_file_temp","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_move_same_fs","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_movedir","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_open","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_open_exclusive","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_open_files","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_openbin","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_openbin_exclusive","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_openbin_rw","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_opendir","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_readbytes","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_readtext","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_remove","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_removedir","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_removetree","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_removetree_root","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_repeat_dir","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_root_dir","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_scandir","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_setinfo","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_settimes","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_touch","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_tree","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_unicode_path","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_upload","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_upload_0","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_upload_1","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_upload_2","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_upload_4","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_upload_chunk_size","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_validatepath","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_writebytes","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_writefile"],"failed":[],"errors":["fs/test.py::tests::test_ftpfs::TestFTPFS::test_writetext","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_writetext","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_writetext"],"skipped":["fs/test.py::tests::test_ftpfs::TestFTPFS::test_case_sensitive","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_case_sensitive","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_case_sensitive"],"collection_errors":[],"failure_text":{"fs/test.py::tests::test_ftpfs::TestFTPFS::test_writetext":"failed on teardown with \"AttributeError: 'Process' object has no attribute 'net_connections'. Did you mean: 'connections'?\"\nE   AttributeError: 'Process' object has no attribute 'net_connections'. Did you mean: 'connections'?","fs/test.py::tests::test_ftpfs::TestFTPFSNoMLSD::test_writetext":"failed on teardown with \"AttributeError: 'Process' object has no attribute 'net_connections'. Did you mean: 'connections'?\"\nE   AttributeError: 'Process' object has no attribute 'net_connections'. Did you mean: 'connections'?","fs/test.py::tests::test_ftpfs::TestAnonFTPFS::test_writetext":"failed on teardown with \"AttributeError: 'Process' object has no attribute 'net_connections'. Did you mean: 'connections'?\"\nE   AttributeError: 'Process' object has no attribute 'net_connections'. Did you mean: 'connections'?"}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-16","seq":16,"branch_id":"agent1","kind":"command","cmd":"python -c \"\nimport tempfile\nimport os\nfrom fs.memoryfs import MemoryFS\n\n# Test that basic functionality still works\nfs = MemoryFS()\nfs.makedir('test')\nfs.touch('test/file.txt')\nprint('MemoryFS basic test passed')\n\"","path":null,"exit_code":0,"stdout_tail":"MemoryFS basic test passed\n","stderr_tail":"/pyfilesystem2/fs/__init__.py:4: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n  __import__(\"pkg_resources\").declare_namespace(__name__)  # type: ignore\n","stdout_sha256":"15d029d1b17914e0eb925238cada448e5a96f64a93956475d36e1bf07f243332","log_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/logs/agent1/agent1-16.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T01:28:52.553756Z","duration_s":0.163824,"timed_out":false,"image_before":"0768eba8-78fc-4c85-918a-c277fd256654","image_after":"62a1b965-c7ec-4334-abbe-81cc1722effb","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-17","seq":17,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-07c5c6d236584fcd98751f2d1fc341a1/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-07c5c6d236584fcd98751f2d1fc341a1/incoming/783f1b633aafe7828a9b14013b76ee698a2d56e6e0ed3ed8dafde6b67212ea7a /tmp/test_ftpfs_getmodified.py'","path":"/tmp/test_ftpfs_getmodified.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"783f1b633aafe7828a9b14013b76ee698a2d56e6e0ed3ed8dafde6b67212ea7a","log_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/logs/agent1/agent1-17.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T01:28:57.858287Z","duration_s":0.004356,"timed_out":false,"image_before":"62a1b965-c7ec-4334-abbe-81cc1722effb","image_after":"48967086-c736-4375-abfc-b9c81ac19eb5","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-18","seq":18,"branch_id":"agent1","kind":"command","cmd":"python /tmp/test_ftpfs_getmodified.py","path":null,"exit_code":1,"stdout_tail":"","stderr_tail":"/pyfilesystem2/fs/__init__.py:4: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n  __import__(\"pkg_resources\").declare_namespace(__name__)  # type: ignore\nTraceback (most recent call last):\n  File \"/tmp/test_ftpfs_getmodified.py\", line 61, in <module>\n    test_getmodified()\n  File \"/tmp/test_ftpfs_getmodified.py\", line 30, in test_getmodified\n    fs = FTPFS('dummy.host')\n  File \"/tmp/test_ftpfs_getmodified.py\", line 24, in mock_init\n    self.ftp = MockFTP()\nAttributeError: can't set attribute 'ftp'\n","stdout_sha256":"6237dbaa238bd02bdc6702a2184ddc49b962454acae8b2f9c2b97144c75dd42c","log_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/logs/agent1/agent1-18.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T01:29:00.354237Z","duration_s":0.147096,"timed_out":false,"image_before":"48967086-c736-4375-abfc-b9c81ac19eb5","image_after":"7e7f98df-f515-46af-b1eb-ed7af5bd1b03","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-19","seq":19,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-5885e5e28ade4a4db83ceea49248e515/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-5885e5e28ade4a4db83ceea49248e515/incoming/5484c9846f6fbf3e75db9f499f93dc6cdc15670917ffbc71fe81993255e3c460 /tmp/test_mdtm_logic.py'","path":"/tmp/test_mdtm_logic.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"5484c9846f6fbf3e75db9f499f93dc6cdc15670917ffbc71fe81993255e3c460","log_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/logs/agent1/agent1-19.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T01:29:07.271802Z","duration_s":0.004927,"timed_out":false,"image_before":"7e7f98df-f515-46af-b1eb-ed7af5bd1b03","image_after":"dd238bd8-8d16-4ab3-b94a-56f2014cd72e","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-20","seq":20,"branch_id":"agent1","kind":"command","cmd":"python /tmp/test_mdtm_logic.py","path":null,"exit_code":0,"stdout_tail":"Testing response: 213 20230115103045\n  After stripping prefix: 20230115103045\n  After handling microseconds: 20230115103045\n  Parsed: 2023-01-15 10:30:45+00:00\n  Expected: 2023-01-15 10:30:45\n  ✓ PASS\nTesting response: 213 20230115103045.123456\n  After stripping prefix: 20230115103045.123456\n  After handling microseconds: 20230115103045123456\n  Parsed: 2023-01-15 10:30:45.123456+00:00\n  Expected: 2023-01-15 10:30:45.123456\n  ✓ PASS\nTesting response: 213 20230115103045.123\n  After stripping prefix: 20230115103045.123\n  After handling microseconds: 20230115103045123000\n  Parsed: 2023-01-15 10:30:45.123000+00:00\n  Expected: 2023-01-15 10:30:45.123000\n  ✓ PASS\nTesting response: 21320230115103045\n  After stripping prefix: 20230115103045\n  After handling microseconds: 20230115103045\n  Parsed: 2023-01-15 10:30:45+00:00\n  Expected: 2023-01-15 10:30:45\n  ✓ PASS\n","stderr_tail":"/pyfilesystem2/fs/__init__.py:4: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n  __import__(\"pkg_resources\").declare_namespace(__name__)  # type: ignore\n","stdout_sha256":"09690ef22d2c1079462a1b54fa078398c373a60a3d582f3dbc953935f4b66143","log_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/logs/agent1/agent1-20.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T01:29:10.352551Z","duration_s":0.13750600000000002,"timed_out":false,"image_before":"dd238bd8-8d16-4ab3-b94a-56f2014cd72e","image_after":"031e06db-1a12-4197-88d4-8a6b6f559b84","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-21","seq":21,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-a4e4b17520374353bd9de0720497a701/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-a4e4b17520374353bd9de0720497a701/receipts_pytest.py tests/test_ftpfs.py::TestFTPFS::test_getinfo_modified tests/test_ftpfs.py::TestFTPFSNoMLSD::test_getinfo_modified -v -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-21.xml","path":null,"exit_code":1,"stdout_tail":"     [ 50%]\ntests/test_ftpfs.py::TestFTPFSNoMLSD::test_getinfo_modified PASSED       [100%]\ntests/test_ftpfs.py::TestFTPFSNoMLSD::test_getinfo_modified ERROR        [100%]\n\n==================================== ERRORS ====================================\n_____________ ERROR at teardown of TestFTPFS.test_getinfo_modified _____________\n\ncls = <class 'tests.test_ftpfs.TestFTPFS'>\n\n    @classmethod\n    def tearDownClass(cls):\n>       cls.server.stop()\n\ntests/test_ftpfs.py:180: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n/usr/local/lib/python3.10/site-packages/pyftpdlib/test/__init__.py:484: in stop\n    assert_free_resources(self.parent_pid)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nparent_pid = 12\n\n    def assert_free_resources(parent_pid=None):\n        # check orphaned threads\n        ts = threading.enumerate()\n        assert len(ts) == 1, ts\n        # check orphaned process children\n        this_proc = psutil.Process(parent_pid or os.getpid())\n        children = this_proc.children()\n        if children:\n            warnings.warn(\n                \"some children didn't terminate %r\" % str(children),\n                UserWarning,\n                stacklevel=2,\n            )\n            for child in children:\n                try:\n                    child.kill()\n                    child.wait(GLOBAL_TIMEOUT)\n                except psutil.NoSuchProcess:\n                    pass\n        # check unclosed connections\n        if POSIX:\n            cons = [\n                x\n>               for x in this_proc.net_connections('tcp')\n                if x.status != psutil.CONN_CLOSE_WAIT\n            ]\nE           AttributeError: 'Process' object has no attribute 'net_connections'. Did you mean: 'connections'?\n\n/usr/local/lib/python3.10/site-packages/pyftpdlib/test/__init__.py:382: AttributeError\n__________ ERROR at teardown of TestFTPFSNoMLSD.test_getinfo_modified __________\n\ncls = <class 'tests.test_ftpfs.TestFTPFSNoMLSD'>\n\n    @classmethod\n    def tearDownClass(cls):\n>       cls.server.stop()\n\ntests/test_ftpfs.py:180: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n/usr/local/lib/python3.10/site-packages/pyftpdlib/test/__init__.py:484: in stop\n    assert_free_resources(self.parent_pid)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nparent_pid = 12\n\n    def assert_free_resources(parent_pid=None):\n        # check orphaned threads\n        ts = threading.enumerate()\n        assert len(ts) == 1, ts\n        # check orphaned process children\n        this_proc = psutil.Process(parent_pid or os.getpid())\n        children = this_proc.children()\n        if children:\n            warnings.warn(\n                \"some children didn't terminate %r\" % str(children),\n                UserWarning,\n                stacklevel=2,\n            )\n            for child in children:\n                try:\n                    child.kill()\n                    child.wait(GLOBAL_TIMEOUT)\n                except psutil.NoSuchProcess:\n                    pass\n        # check unclosed connections\n        if POSIX:\n            cons = [\n                x\n>               for x in this_proc.net_connections('tcp')\n                if x.status != psutil.CONN_CLOSE_WAIT\n            ]\nE           AttributeError: 'Process' object has no attribute 'net_connections'. Did you mean: 'connections'?\n\n/usr/local/lib/python3.10/site-packages/pyftpdlib/test/__init__.py:382: AttributeError\n=============================== warnings summary ===============================\nfs/__init__.py:4\n  /pyfilesystem2/fs/__init__.py:4: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n    __import__(\"pkg_resources\").declare_namespace(__name__)  # type: ignore\n\nfs/__init__.py:4\n  /pyfilesystem2/fs/__init__.py:4: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('fs')`.\n  Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages\n    __import__(\"pkg_resources\").declare_namespace(__name__)  # type: ignore\n\nfs/opener/__init__.py:6\n  /pyfilesystem2/fs/opener/__init__.py:6: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('fs.opener')`.\n  Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages\n    __import__(\"pkg_resources\").declare_namespace(__name__)  # type: ignore\n\n../usr/local/lib/python3.10/site-packages/pkg_resources/__init__.py:2558\n  /usr/local/lib/python3.10/site-packages/pkg_resources/__init__.py:2558: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('fs')`.\n  Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages\n    declare_namespace(parent)\n\n-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html\n==================================== PASSES ====================================\n----------- generated xml file: /opt/receipts/reports/agent1-21.xml ------------\n=========================== short test summary info ============================\nPASSED tests/test_ftpfs.py::TestFTPFS::test_getinfo_modified\nPASSED tests/test_ftpfs.py::TestFTPFSNoMLSD::test_getinfo_modified\nERROR tests/test_ftpfs.py::TestFTPFS::test_getinfo_modified - AttributeError:...\nERROR tests/test_ftpfs.py::TestFTPFSNoMLSD::test_getinfo_modified - Attribute...\n=================== 2 passed, 4 warnings, 2 errors in 0.59s ====================\n","stderr_tail":"","stdout_sha256":"4b7745dbd726f5510fc09569447e3d1d21e6cab23a71560c6f2e91e5be1a8bd5","log_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/logs/agent1/agent1-21.log","tree_digest":"8c94121772dcfe8ea15a572545daf5ce36463a5ff10b2850bb9cb6f6ac9c4c29","tree_download_s":2.954649625113234,"started_at":"2026-10-03T01:29:13.711112Z","duration_s":0.898323,"timed_out":false,"image_before":"031e06db-1a12-4197-88d4-8a6b6f559b84","image_after":"734dda77-5b4e-444c-ab40-12a27a568e58","junit":{"passed":[],"failed":[],"errors":["tests/test_ftpfs.py::TestFTPFS::test_getinfo_modified","tests/test_ftpfs.py::TestFTPFSNoMLSD::test_getinfo_modified"],"skipped":[],"collection_errors":[],"failure_text":{"tests/test_ftpfs.py::TestFTPFS::test_getinfo_modified":"failed on teardown with \"AttributeError: 'Process' object has no attribute 'net_connections'. Did you mean: 'connections'?\"\ncls = <class 'tests.test_ftpfs.TestFTPFS'>\n\n    @classmethod\n    def tearDownClass(cls):\n>       cls.server.stop()\n\ntests/test_ftpfs.py:180: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n/usr/local/lib/python3.10/site-packages/pyftpdlib/test/__init__.py:484: in stop\n    assert_free_resources(self.parent_pid)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nparent_pid = 12\n\n    def assert_free_resources(parent_pid=None):\n        # check orphaned threads\n        ts = threading.enumerate()\n        assert len(ts) == 1, ts\n        # check orphaned process children\n        this_proc = psutil.Process(parent_pid or os.getpid())\n        children = this_proc.children()\n        if children:\n            warnings.warn(\n                \"some children didn't terminate %r\" % str(children),\n                UserWarning,\n                stacklevel=2,\n            )\n            for child in children:\n                try:\n                    child.kill()\n                    child.wait(GLOBAL_TIMEOUT)\n                except psutil.NoSuchProcess:\n                    pass\n        # check unclosed connections\n        if POSIX:\n            cons = [\n                x\n>               for x in this_proc.net_connections('tcp')\n                if x.status != psutil.CONN_CLOSE_WAIT\n            ]\nE           AttributeError: 'Process' object has no attribute 'net_connections'. Did you mean: 'connections'?\n\n/usr/local/lib/python3.10/site-packages/pyftpdlib/test/__init__.py:382: AttributeError","tests/test_ftpfs.py::TestFTPFSNoMLSD::test_getinfo_modified":"failed on teardown with \"AttributeError: 'Process' object has no attribute 'net_connections'. Did you mean: 'connections'?\"\ncls = <class 'tests.test_ftpfs.TestFTPFSNoMLSD'>\n\n    @classmethod\n    def tearDownClass(cls):\n>       cls.server.stop()\n\ntests/test_ftpfs.py:180: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n/usr/local/lib/python3.10/site-packages/pyftpdlib/test/__init__.py:484: in stop\n    assert_free_resources(self.parent_pid)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nparent_pid = 12\n\n    def assert_free_resources(parent_pid=None):\n        # check orphaned threads\n        ts = threading.enumerate()\n        assert len(ts) == 1, ts\n        # check orphaned process children\n        this_proc = psutil.Process(parent_pid or os.getpid())\n        children = this_proc.children()\n        if children:\n            warnings.warn(\n                \"some children didn't terminate %r\" % str(children),\n                UserWarning,\n                stacklevel=2,\n            )\n            for child in children:\n                try:\n                    child.kill()\n                    child.wait(GLOBAL_TIMEOUT)\n                except psutil.NoSuchProcess:\n                    pass\n        # check unclosed connections\n        if POSIX:\n            cons = [\n                x\n>               for x in this_proc.net_connections('tcp')\n                if x.status != psutil.CONN_CLOSE_WAIT\n            ]\nE           AttributeError: 'Process' object has no attribute 'net_connections'. Did you mean: 'connections'?\n\n/usr/local/lib/python3.10/site-packages/pyftpdlib/test/__init__.py:382: AttributeError"}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-22","seq":22,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-8e7baf0e737d4250bdea639a29d840b2/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-8e7baf0e737d4250bdea639a29d840b2/receipts_pytest.py tests/test_ftpfs.py::TestFTPFS::test_getinfo tests/test_ftpfs.py::TestFTPFS::test_ftp_url tests/test_ftpfs.py::TestFTPFS::test_binary -v -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-22.xml","path":null,"exit_code":4,"stdout_tail":"============================= test session starts ==============================\nplatform linux -- Python 3.10.19, pytest-9.0.2, pluggy-1.6.0 -- /usr/local/bin/python\nrootdir: /pyfilesystem2\nconfigfile: setup.cfg\ncollecting ... collected 2 items\n\n=============================== warnings summary ===============================\nfs/__init__.py:4\n  /pyfilesystem2/fs/__init__.py:4: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n    __import__(\"pkg_resources\").declare_namespace(__name__)  # type: ignore\n\nfs/__init__.py:4\n  /pyfilesystem2/fs/__init__.py:4: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('fs')`.\n  Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages\n    __import__(\"pkg_resources\").declare_namespace(__name__)  # type: ignore\n\nfs/opener/__init__.py:6\n  /pyfilesystem2/fs/opener/__init__.py:6: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('fs.opener')`.\n  Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages\n    __import__(\"pkg_resources\").declare_namespace(__name__)  # type: ignore\n\n../usr/local/lib/python3.10/site-packages/pkg_resources/__init__.py:2558\n  /usr/local/lib/python3.10/site-packages/pkg_resources/__init__.py:2558: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('fs')`.\n  Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages\n    declare_namespace(parent)\n\n-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html\n----------- generated xml file: /opt/receipts/reports/agent1-22.xml ------------\n============================= 4 warnings in 0.42s ==============================\n","stderr_tail":"ERROR: not found: /pyfilesystem2/tests/test_ftpfs.py::TestFTPFS::test_binary\n(no match in any of [<UnitTestCase TestFTPFS>])\n\n","stdout_sha256":"74f73128bb03a4178f9f18a5ceb2e4cefc395d5932564359a6ae4cee428b1a0b","log_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/logs/agent1/agent1-22.log","tree_digest":"8c94121772dcfe8ea15a572545daf5ce36463a5ff10b2850bb9cb6f6ac9c4c29","tree_download_s":2.4010754581540823,"started_at":"2026-10-03T01:29:22.952071Z","duration_s":0.763006,"timed_out":false,"image_before":"734dda77-5b4e-444c-ab40-12a27a568e58","image_after":"2cd1b502-6142-4a32-a7ef-bbdf6248ce74","junit":{"passed":[],"failed":[],"errors":[],"skipped":[],"collection_errors":[],"failure_text":{}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-23","seq":23,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-3e6eebbd56464fc5af49134bb8253f57/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-3e6eebbd56464fc5af49134bb8253f57/receipts_pytest.py tests/test_ftpfs.py::TestFTPFS::test_getinfo tests/test_ftpfs.py::TestFTPFS::test_ftp_url tests/test_ftpfs.py::TestFTPFS::test_exists -v -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-23.xml","path":null,"exit_code":1,"stdout_tail":"============================= test session starts ==============================\nplatform linux -- Python 3.10.19, pytest-9.0.2, pluggy-1.6.0 -- /usr/local/bin/python\nrootdir: /pyfilesystem2\nconfigfile: setup.cfg\ncollecting ... collected 3 items\n\ntests/test_ftpfs.py::TestFTPFS::test_getinfo PASSED                      [ 33%]\ntests/test_ftpfs.py::TestFTPFS::test_ftp_url PASSED                      [ 66%]\ntests/test_ftpfs.py::TestFTPFS::test_exists PASSED                       [100%]\ntests/test_ftpfs.py::TestFTPFS::test_exists ERROR                        [100%]\n\n==================================== ERRORS ====================================\n__________________ ERROR at teardown of TestFTPFS.test_exists __________________\n\ncls = <class 'tests.test_ftpfs.TestFTPFS'>\n\n    @classmethod\n    def tearDownClass(cls):\n>       cls.server.stop()\n\ntests/test_ftpfs.py:180: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n/usr/local/lib/python3.10/site-packages/pyftpdlib/test/__init__.py:484: in stop\n    assert_free_resources(self.parent_pid)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nparent_pid = 10\n\n    def assert_free_resources(parent_pid=None):\n        # check orphaned threads\n        ts = threading.enumerate()\n        assert len(ts) == 1, ts\n        # check orphaned process children\n        this_proc = psutil.Process(parent_pid or os.getpid())\n        children = this_proc.children()\n        if children:\n            warnings.warn(\n                \"some children didn't terminate %r\" % str(children),\n                UserWarning,\n                stacklevel=2,\n            )\n            for child in children:\n                try:\n                    child.kill()\n                    child.wait(GLOBAL_TIMEOUT)\n                except psutil.NoSuchProcess:\n                    pass\n        # check unclosed connections\n        if POSIX:\n            cons = [\n                x\n>               for x in this_proc.net_connections('tcp')\n                if x.status != psutil.CONN_CLOSE_WAIT\n            ]\nE           AttributeError: 'Process' object has no attribute 'net_connections'. Did you mean: 'connections'?\n\n/usr/local/lib/python3.10/site-packages/pyftpdlib/test/__init__.py:382: AttributeError\n=============================== warnings summary ===============================\nfs/__init__.py:4\n  /pyfilesystem2/fs/__init__.py:4: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n    __import__(\"pkg_resources\").declare_namespace(__name__)  # type: ignore\n\nfs/__init__.py:4\n  /pyfilesystem2/fs/__init__.py:4: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('fs')`.\n  Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages\n    __import__(\"pkg_resources\").declare_namespace(__name__)  # type: ignore\n\nfs/opener/__init__.py:6\n  /pyfilesystem2/fs/opener/__init__.py:6: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('fs.opener')`.\n  Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages\n    __import__(\"pkg_resources\").declare_namespace(__name__)  # type: ignore\n\n../usr/local/lib/python3.10/site-packages/pkg_resources/__init__.py:2558\n  /usr/local/lib/python3.10/site-packages/pkg_resources/__init__.py:2558: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('fs')`.\n  Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages\n    declare_namespace(parent)\n\n-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html\n==================================== PASSES ====================================\n----------- generated xml file: /opt/receipts/reports/agent1-23.xml ------------\n=========================== short test summary info ============================\nPASSED tests/test_ftpfs.py::TestFTPFS::test_getinfo\nPASSED tests/test_ftpfs.py::TestFTPFS::test_ftp_url\nPASSED tests/test_ftpfs.py::TestFTPFS::test_exists\nERROR tests/test_ftpfs.py::TestFTPFS::test_exists - AttributeError: 'Process'...\n==================== 3 passed, 4 warnings, 1 error in 0.53s ====================\n","stderr_tail":"","stdout_sha256":"4a7f157c55d13bad42af7b9c29b789071ef5e2ba5b64f734c450b27d442f1321","log_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/logs/agent1/agent1-23.log","tree_digest":"8c94121772dcfe8ea15a572545daf5ce36463a5ff10b2850bb9cb6f6ac9c4c29","tree_download_s":2.2770763330627233,"started_at":"2026-10-03T01:29:30.456540Z","duration_s":0.8562409999999999,"timed_out":false,"image_before":"2cd1b502-6142-4a32-a7ef-bbdf6248ce74","image_after":"a1d78083-d1f6-48b1-817f-2b604f8b009c","junit":{"passed":["fs/test.py::tests::test_ftpfs::TestFTPFS::test_getinfo","tests/test_ftpfs.py::TestFTPFS::test_ftp_url"],"failed":[],"errors":["fs/test.py::tests::test_ftpfs::TestFTPFS::test_exists"],"skipped":[],"collection_errors":[],"failure_text":{"fs/test.py::tests::test_ftpfs::TestFTPFS::test_exists":"failed on teardown with \"AttributeError: 'Process' object has no attribute 'net_connections'. Did you mean: 'connections'?\"\ncls = <class 'tests.test_ftpfs.TestFTPFS'>\n\n    @classmethod\n    def tearDownClass(cls):\n>       cls.server.stop()\n\ntests/test_ftpfs.py:180: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n/usr/local/lib/python3.10/site-packages/pyftpdlib/test/__init__.py:484: in stop\n    assert_free_resources(self.parent_pid)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nparent_pid = 10\n\n    def assert_free_resources(parent_pid=None):\n        # check orphaned threads\n        ts = threading.enumerate()\n        assert len(ts) == 1, ts\n        # check orphaned process children\n        this_proc = psutil.Process(parent_pid or os.getpid())\n        children = this_proc.children()\n        if children:\n            warnings.warn(\n                \"some children didn't terminate %r\" % str(children),\n                UserWarning,\n                stacklevel=2,\n            )\n            for child in children:\n                try:\n                    child.kill()\n                    child.wait(GLOBAL_TIMEOUT)\n                except psutil.NoSuchProcess:\n                    pass\n        # check unclosed connections\n        if POSIX:\n            cons = [\n                x\n>               for x in this_proc.net_connections('tcp')\n                if x.status != psutil.CONN_CLOSE_WAIT\n            ]\nE           AttributeError: 'Process' object has no attribute 'net_connections'. Did you mean: 'connections'?\n\n/usr/local/lib/python3.10/site-packages/pyftpdlib/test/__init__.py:382: AttributeError"}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-24","seq":24,"branch_id":"agent1","kind":"diff","cmd":"compute patch in executor staging agent1-1ef4d4f552af4977886da2c400b9313c: /opt/homebrew/Cellar/git/2.53.0/bin/git -c core.hooksPath=/dev/null -c core.attributesFile=/dev/null -c diff.external= -c core.quotePath=false add -A && /opt/homebrew/Cellar/git/2.53.0/bin/git -c core.hooksPath=/dev/null -c core.attributesFile=/dev/null -c diff.external= -c core.quotePath=false diff --cached --binary --no-ext-diff --no-textconv --no-renames c2ec982a10118cd13ad8a2140e3a500110cce975","path":null,"exit_code":0,"stdout_tail":"diff --git a/fs/ftpfs.py b/fs/ftpfs.py\nindex 86f0495..e1ab883 100644\n--- a/fs/ftpfs.py\n+++ b/fs/ftpfs.py\n@@ -694,6 +694,48 @@ class FTPFS(FS):\n             _meta[\"unicode_paths\"] = \"UTF8\" in self.features\n         return _meta\n \n+    def getmodified(self, path):\n+        # type: (Text) -> DateTime\n+        \"\"\"Get the modified time of a resource as a datetime object.\n+        \n+        Uses MDTM command when available for efficiency.\n+        \"\"\"\n+        _path = self.validatepath(path)\n+        with self._lock:\n+            with ftp_errors(self, path=path):\n+                response = self.ftp.sendcmd(str(\"MDTM \") + _encode(_path, self.ftp.encoding))\n+        # MDTM response format: \"YYYYMMDDHHMMSS[.ffffff]\"\n+        time_text = _decode(response, self.ftp.encoding).strip()\n+        # Remove the MDTM prefix (first 4 chars)\n+        if time_text.startswith(\"213 \"):\n+            time_text = time_text[4:]\n+        elif time_text.startswith(\"213\"):\n+            time_text = time_text[3:]\n+        # Parse the timestamp\n+        try:\n+            # Handle potential microseconds\n+            if \".\" in time_text:\n+                main_part, frac_part = time_text.split(\".\", 1)\n+                frac_part = frac_part.ljust(6, \"0\")[:6]  # Pad/truncate to 6 digits\n+                time_text = main_part + frac_part\n+            \n+            tm_year = int(time_text[0:4])\n+            tm_month = int(time_text[4:6])\n+            tm_day = int(time_text[6:8])\n+            tm_hour = int(time_text[8:10])\n+            tm_min = int(time_text[10:12])\n+            tm_sec = int(time_text[12:14])\n+            tm_usec = int(time_text[14:20]) if len(time_text) > 14 else 0\n+        except ValueError:\n+            # Fallback to getting info if MDTM fails\n+            info = self.getinfo(path, namespaces=(\"basic\", \"details\"))\n+            return info.modified\n+        \n+        # Convert to datetime object\n+        dt = datetime.datetime(tm_year, tm_month, tm_day, tm_hour, tm_min, tm_sec, tm_usec)\n+        # FTP times are typically in UTC\n+        return dt.replace(tzinfo=datetime.timezone.utc)\n+\n     def listdir(self, path):\n         # type: (Text) -> List[Text]\n         _path = self.validatepath(path)\n","stderr_tail":"","stdout_sha256":"1285cafb96f37b844c37c6cf8ae22b677e8d83d0071dcc80d8289bf89a29282a","log_path":null,"tree_digest":"8c94121772dcfe8ea15a572545daf5ce36463a5ff10b2850bb9cb6f6ac9c4c29","tree_download_s":2.2415825000498444,"started_at":"2026-10-03T01:29:45.231535Z","duration_s":0.05575679196044803,"timed_out":false,"image_before":"a1d78083-d1f6-48b1-817f-2b604f8b009c","image_after":"a1d78083-d1f6-48b1-817f-2b604f8b009c","junit":null,"diff":{"files":[{"path":"fs/ftpfs.py","added":42,"deleted":0,"category":"source","status":"modified"}],"patch_sha256":"1285cafb96f37b844c37c6cf8ae22b677e8d83d0071dcc80d8289bf89a29282a","patch_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/artifacts/agent1/agent1-24.patch"},"patch_sha256":"1285cafb96f37b844c37c6cf8ae22b677e8d83d0071dcc80d8289bf89a29282a","dropped_paths":[],"snapshot_sha":"c2ec982a10118cd13ad8a2140e3a500110cce975"}
{"receipt_id":"agent1-25","seq":25,"branch_id":"agent1","kind":"command","cmd":"grep -r \"def getmodified\" fs/ || echo \"none\"","path":null,"exit_code":0,"stdout_tail":"fs/ftpfs.py:    def getmodified(self, path):\n","stderr_tail":"","stdout_sha256":"45debd1d8046b52ba62fa72455a13e4125ca62caa1df22b5baf419f2b0940cf5","log_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/logs/agent1/agent1-25.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T01:30:08.245230Z","duration_s":0.004406,"timed_out":false,"image_before":"a1d78083-d1f6-48b1-817f-2b604f8b009c","image_after":"758a53e1-013b-40c0-92af-1aae4075a33d","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-26","seq":26,"branch_id":"agent1","kind":"command","cmd":"grep -n \"getmodified\" fs/base.py","path":null,"exit_code":1,"stdout_tail":"","stderr_tail":"","stdout_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","log_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/logs/agent1/agent1-26.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T01:30:13.584333Z","duration_s":0.003556,"timed_out":false,"image_before":"758a53e1-013b-40c0-92af-1aae4075a33d","image_after":"1a6f460f-2a36-4f9e-903b-38f7b650eded","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-27","seq":27,"branch_id":"agent1","kind":"command","cmd":"grep -n \"def getinfo\" fs/base.py","path":null,"exit_code":0,"stdout_tail":"150:    def getinfo(self, path, namespaces=None):\n","stderr_tail":"","stdout_sha256":"888fd755b64bbc8cbd7f7364976de833d68cb14210a0d0bc43e93e7b86e86794","log_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/logs/agent1/agent1-27.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T01:30:17.365268Z","duration_s":0.0034990000000000004,"timed_out":false,"image_before":"1a6f460f-2a36-4f9e-903b-38f7b650eded","image_after":"b8b716fd-4421-4394-9a10-aed24abf116a","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-28","seq":28,"branch_id":"agent1","kind":"command","cmd":"grep -n \"def get.*\" fs/base.py | head -20","path":null,"exit_code":0,"stdout_tail":"150:    def getinfo(self, path, namespaces=None):\n700:    def getmeta(self, namespace=\"standard\"):\n754:    def getsize(self, path):\n778:    def getsyspath(self, path):\n816:    def getospath(self, path):\n845:    def gettype(self, path):\n886:    def geturl(self, path, purpose=\"download\"):\n1580:    def getbasic(self, path):\n1606:    def getdetails(self, path):\n","stderr_tail":"","stdout_sha256":"16d23276c54c12ac9d239890858033f0c63ffd2d29d95344835a24c73eba41cb","log_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/logs/agent1/agent1-28.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T01:30:25.146782Z","duration_s":0.004299,"timed_out":false,"image_before":"b8b716fd-4421-4394-9a10-aed24abf116a","image_after":"a9aa0951-2a54-4dbd-ab25-d65bb16c4459","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-29","seq":29,"branch_id":"agent1","kind":"command","cmd":"sed -n '700,820p' fs/base.py | grep -n \"^    def\\|^class\\|^[[:space:]]*$\" | head -5","path":null,"exit_code":0,"stdout_tail":"1:    def getmeta(self, namespace=\"standard\"):\n4:\n8:\n11:\n19:\n","stderr_tail":"","stdout_sha256":"bd4dcbd2a5c98b2ba13cbe09ee6547330d7f2cade44a6b987c61a2115132ed65","log_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/logs/agent1/agent1-29.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T01:30:33.604375Z","duration_s":0.005678,"timed_out":false,"image_before":"a9aa0951-2a54-4dbd-ab25-d65bb16c4459","image_after":"be617668-a804-4722-85ab-5f41aa720c6d","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-30","seq":30,"branch_id":"agent1","kind":"command","cmd":"awk 'NR>=700 && NR<=850 && /^[[:space:]]*def / {print NR \": \" $0}' fs/base.py","path":null,"exit_code":0,"stdout_tail":"700:     def getmeta(self, namespace=\"standard\"):\n754:     def getsize(self, path):\n778:     def getsyspath(self, path):\n816:     def getospath(self, path):\n845:     def gettype(self, path):\n","stderr_tail":"","stdout_sha256":"9fe0680161a1acc5e5148c20a99acb5e287982d3d9db6f5f0ecc712cfc29f35a","log_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/logs/agent1/agent1-30.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T01:30:39.163944Z","duration_s":0.002675,"timed_out":false,"image_before":"be617668-a804-4722-85ab-5f41aa720c6d","image_after":"fa76edb1-d9cd-405b-b65d-46a42574a756","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-31","seq":31,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-65c24b6748064389a9b2fe0980ec700b/bin/busybox sh -c 'mkdir -p /pyfilesystem2/fs && cp /opt/receipts-65c24b6748064389a9b2fe0980ec700b/incoming/0f77528971f991a396b4a4348da54ea17ea5c427e23a5379c3dabed1ac8cd0d6 /pyfilesystem2/fs/base.py'","path":"fs/base.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"0f77528971f991a396b4a4348da54ea17ea5c427e23a5379c3dabed1ac8cd0d6","log_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/logs/agent1/agent1-31.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T01:30:46.603132Z","duration_s":0.004517,"timed_out":false,"image_before":"fa76edb1-d9cd-405b-b65d-46a42574a756","image_after":"bdf57c68-66b8-47dc-8b41-7fdc342f68bb","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-32","seq":32,"branch_id":"agent1","kind":"command","cmd":"head -20 fs/base.py | grep import","path":null,"exit_code":0,"stdout_tail":"from __future__ import absolute_import, print_function, unicode_literals\nimport abc\nimport hashlib\nimport itertools\nimport os\nimport threading\nimport time\nimport typing\nfrom contextlib import closing\nfrom functools import partial, wraps\nimport warnings\n","stderr_tail":"","stdout_sha256":"2784f08bfac0c09228ab56679cab10a78a4be39534e9393231c8fb2fc03cf8dc","log_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/logs/agent1/agent1-32.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T01:30:49.372136Z","duration_s":0.003779,"timed_out":false,"image_before":"bdf57c68-66b8-47dc-8b41-7fdc342f68bb","image_after":"8e09f55c-03de-4024-a020-e5aff5a9a3f3","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-33","seq":33,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-629a81049cb7420abeae5870cc24fb32/bin/busybox sh -c 'mkdir -p /pyfilesystem2/fs && cp /opt/receipts-629a81049cb7420abeae5870cc24fb32/incoming/d6bdfb6013442909caee0710a013f6635d34b4c147332d144f5bfe6ae2231a07 /pyfilesystem2/fs/base.py'","path":"fs/base.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"d6bdfb6013442909caee0710a013f6635d34b4c147332d144f5bfe6ae2231a07","log_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/logs/agent1/agent1-33.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T01:30:53.624884Z","duration_s":0.004527,"timed_out":false,"image_before":"8e09f55c-03de-4024-a020-e5aff5a9a3f3","image_after":"9afaa4fa-8ad0-4582-bcf8-7461a1cec2fd","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-34","seq":34,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-9ae0ba18e093440ba1b68598447d625f/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-9ae0ba18e093440ba1b68598447d625f/receipts_pytest.py tests/test_memoryfs.py::TestMemoryFS::test_copy_preserve_time -v -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-34.xml","path":null,"exit_code":0,"stdout_tail":"============================= test session starts ==============================\nplatform linux -- Python 3.10.19, pytest-9.0.2, pluggy-1.6.0 -- /usr/local/bin/python\nrootdir: /pyfilesystem2\nconfigfile: setup.cfg\ncollecting ... collected 1 item\n\ntests/test_memoryfs.py::TestMemoryFS::test_copy_preserve_time PASSED     [100%]\n\n=============================== warnings summary ===============================\nfs/__init__.py:4\n  /pyfilesystem2/fs/__init__.py:4: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n    __import__(\"pkg_resources\").declare_namespace(__name__)  # type: ignore\n\nfs/__init__.py:4\n  /pyfilesystem2/fs/__init__.py:4: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('fs')`.\n  Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages\n    __import__(\"pkg_resources\").declare_namespace(__name__)  # type: ignore\n\nfs/opener/__init__.py:6\n  /pyfilesystem2/fs/opener/__init__.py:6: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('fs.opener')`.\n  Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages\n    __import__(\"pkg_resources\").declare_namespace(__name__)  # type: ignore\n\n../usr/local/lib/python3.10/site-packages/pkg_resources/__init__.py:2558\n  /usr/local/lib/python3.10/site-packages/pkg_resources/__init__.py:2558: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('fs')`.\n  Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages\n    declare_namespace(parent)\n\n-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html\n==================================== PASSES ====================================\n----------- generated xml file: /opt/receipts/reports/agent1-34.xml ------------\n=========================== short test summary info ============================\nPASSED tests/test_memoryfs.py::TestMemoryFS::test_copy_preserve_time\n======================== 1 passed, 4 warnings in 0.33s =========================\n","stderr_tail":"","stdout_sha256":"b70f563a6d2883a1c1d51e425c157563b8b878b3c0e3e3f214be3602e185e2d4","log_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/logs/agent1/agent1-34.log","tree_digest":"7994ffc5ce846115df753529ba524d62000597ee5afd611e8f88eabb1df8a311","tree_download_s":5.652263208990917,"started_at":"2026-10-03T01:30:56.440766Z","duration_s":0.683676,"timed_out":false,"image_before":"9afaa4fa-8ad0-4582-bcf8-7461a1cec2fd","image_after":"94345971-065e-4461-b256-c1b455dc899c","junit":{"passed":["tests/test_memoryfs.py::TestMemoryFS::test_copy_preserve_time"],"failed":[],"errors":[],"skipped":[],"collection_errors":[],"failure_text":{}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-35","seq":35,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-4e2b7d65cd75483a9e74818fb897adb4/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-4e2b7d65cd75483a9e74818fb897adb4/receipts_pytest.py tests/test_ftpfs.py::TestFTPFS::test_getinfo_modified tests/test_ftpfs.py::TestFTPFSNoMLSD::test_getinfo_modified -v -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-35.xml","path":null,"exit_code":1,"stdout_tail":"     [ 50%]\ntests/test_ftpfs.py::TestFTPFSNoMLSD::test_getinfo_modified PASSED       [100%]\ntests/test_ftpfs.py::TestFTPFSNoMLSD::test_getinfo_modified ERROR        [100%]\n\n==================================== ERRORS ====================================\n_____________ ERROR at teardown of TestFTPFS.test_getinfo_modified _____________\n\ncls = <class 'tests.test_ftpfs.TestFTPFS'>\n\n    @classmethod\n    def tearDownClass(cls):\n>       cls.server.stop()\n\ntests/test_ftpfs.py:180: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n/usr/local/lib/python3.10/site-packages/pyftpdlib/test/__init__.py:484: in stop\n    assert_free_resources(self.parent_pid)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nparent_pid = 11\n\n    def assert_free_resources(parent_pid=None):\n        # check orphaned threads\n        ts = threading.enumerate()\n        assert len(ts) == 1, ts\n        # check orphaned process children\n        this_proc = psutil.Process(parent_pid or os.getpid())\n        children = this_proc.children()\n        if children:\n            warnings.warn(\n                \"some children didn't terminate %r\" % str(children),\n                UserWarning,\n                stacklevel=2,\n            )\n            for child in children:\n                try:\n                    child.kill()\n                    child.wait(GLOBAL_TIMEOUT)\n                except psutil.NoSuchProcess:\n                    pass\n        # check unclosed connections\n        if POSIX:\n            cons = [\n                x\n>               for x in this_proc.net_connections('tcp')\n                if x.status != psutil.CONN_CLOSE_WAIT\n            ]\nE           AttributeError: 'Process' object has no attribute 'net_connections'. Did you mean: 'connections'?\n\n/usr/local/lib/python3.10/site-packages/pyftpdlib/test/__init__.py:382: AttributeError\n__________ ERROR at teardown of TestFTPFSNoMLSD.test_getinfo_modified __________\n\ncls = <class 'tests.test_ftpfs.TestFTPFSNoMLSD'>\n\n    @classmethod\n    def tearDownClass(cls):\n>       cls.server.stop()\n\ntests/test_ftpfs.py:180: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n/usr/local/lib/python3.10/site-packages/pyftpdlib/test/__init__.py:484: in stop\n    assert_free_resources(self.parent_pid)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nparent_pid = 11\n\n    def assert_free_resources(parent_pid=None):\n        # check orphaned threads\n        ts = threading.enumerate()\n        assert len(ts) == 1, ts\n        # check orphaned process children\n        this_proc = psutil.Process(parent_pid or os.getpid())\n        children = this_proc.children()\n        if children:\n            warnings.warn(\n                \"some children didn't terminate %r\" % str(children),\n                UserWarning,\n                stacklevel=2,\n            )\n            for child in children:\n                try:\n                    child.kill()\n                    child.wait(GLOBAL_TIMEOUT)\n                except psutil.NoSuchProcess:\n                    pass\n        # check unclosed connections\n        if POSIX:\n            cons = [\n                x\n>               for x in this_proc.net_connections('tcp')\n                if x.status != psutil.CONN_CLOSE_WAIT\n            ]\nE           AttributeError: 'Process' object has no attribute 'net_connections'. Did you mean: 'connections'?\n\n/usr/local/lib/python3.10/site-packages/pyftpdlib/test/__init__.py:382: AttributeError\n=============================== warnings summary ===============================\nfs/__init__.py:4\n  /pyfilesystem2/fs/__init__.py:4: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n    __import__(\"pkg_resources\").declare_namespace(__name__)  # type: ignore\n\nfs/__init__.py:4\n  /pyfilesystem2/fs/__init__.py:4: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('fs')`.\n  Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages\n    __import__(\"pkg_resources\").declare_namespace(__name__)  # type: ignore\n\nfs/opener/__init__.py:6\n  /pyfilesystem2/fs/opener/__init__.py:6: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('fs.opener')`.\n  Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages\n    __import__(\"pkg_resources\").declare_namespace(__name__)  # type: ignore\n\n../usr/local/lib/python3.10/site-packages/pkg_resources/__init__.py:2558\n  /usr/local/lib/python3.10/site-packages/pkg_resources/__init__.py:2558: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('fs')`.\n  Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages\n    declare_namespace(parent)\n\n-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html\n==================================== PASSES ====================================\n----------- generated xml file: /opt/receipts/reports/agent1-35.xml ------------\n=========================== short test summary info ============================\nPASSED tests/test_ftpfs.py::TestFTPFS::test_getinfo_modified\nPASSED tests/test_ftpfs.py::TestFTPFSNoMLSD::test_getinfo_modified\nERROR tests/test_ftpfs.py::TestFTPFS::test_getinfo_modified - AttributeError:...\nERROR tests/test_ftpfs.py::TestFTPFSNoMLSD::test_getinfo_modified - Attribute...\n=================== 2 passed, 4 warnings, 2 errors in 0.56s ====================\n","stderr_tail":"","stdout_sha256":"002a427ce597d26d00cf17449a15e1f98c7fec8c66880b96cfd0196925d026c7","log_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/logs/agent1/agent1-35.log","tree_digest":"7994ffc5ce846115df753529ba524d62000597ee5afd611e8f88eabb1df8a311","tree_download_s":3.2774910829029977,"started_at":"2026-10-03T01:31:08.003752Z","duration_s":0.871963,"timed_out":false,"image_before":"94345971-065e-4461-b256-c1b455dc899c","image_after":"f1ba1dea-d6fa-418d-90a6-e7dd2c036e87","junit":{"passed":[],"failed":[],"errors":["tests/test_ftpfs.py::TestFTPFS::test_getinfo_modified","tests/test_ftpfs.py::TestFTPFSNoMLSD::test_getinfo_modified"],"skipped":[],"collection_errors":[],"failure_text":{"tests/test_ftpfs.py::TestFTPFS::test_getinfo_modified":"failed on teardown with \"AttributeError: 'Process' object has no attribute 'net_connections'. Did you mean: 'connections'?\"\ncls = <class 'tests.test_ftpfs.TestFTPFS'>\n\n    @classmethod\n    def tearDownClass(cls):\n>       cls.server.stop()\n\ntests/test_ftpfs.py:180: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n/usr/local/lib/python3.10/site-packages/pyftpdlib/test/__init__.py:484: in stop\n    assert_free_resources(self.parent_pid)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nparent_pid = 11\n\n    def assert_free_resources(parent_pid=None):\n        # check orphaned threads\n        ts = threading.enumerate()\n        assert len(ts) == 1, ts\n        # check orphaned process children\n        this_proc = psutil.Process(parent_pid or os.getpid())\n        children = this_proc.children()\n        if children:\n            warnings.warn(\n                \"some children didn't terminate %r\" % str(children),\n                UserWarning,\n                stacklevel=2,\n            )\n            for child in children:\n                try:\n                    child.kill()\n                    child.wait(GLOBAL_TIMEOUT)\n                except psutil.NoSuchProcess:\n                    pass\n        # check unclosed connections\n        if POSIX:\n            cons = [\n                x\n>               for x in this_proc.net_connections('tcp')\n                if x.status != psutil.CONN_CLOSE_WAIT\n            ]\nE           AttributeError: 'Process' object has no attribute 'net_connections'. Did you mean: 'connections'?\n\n/usr/local/lib/python3.10/site-packages/pyftpdlib/test/__init__.py:382: AttributeError","tests/test_ftpfs.py::TestFTPFSNoMLSD::test_getinfo_modified":"failed on teardown with \"AttributeError: 'Process' object has no attribute 'net_connections'. Did you mean: 'connections'?\"\ncls = <class 'tests.test_ftpfs.TestFTPFSNoMLSD'>\n\n    @classmethod\n    def tearDownClass(cls):\n>       cls.server.stop()\n\ntests/test_ftpfs.py:180: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n/usr/local/lib/python3.10/site-packages/pyftpdlib/test/__init__.py:484: in stop\n    assert_free_resources(self.parent_pid)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nparent_pid = 11\n\n    def assert_free_resources(parent_pid=None):\n        # check orphaned threads\n        ts = threading.enumerate()\n        assert len(ts) == 1, ts\n        # check orphaned process children\n        this_proc = psutil.Process(parent_pid or os.getpid())\n        children = this_proc.children()\n        if children:\n            warnings.warn(\n                \"some children didn't terminate %r\" % str(children),\n                UserWarning,\n                stacklevel=2,\n            )\n            for child in children:\n                try:\n                    child.kill()\n                    child.wait(GLOBAL_TIMEOUT)\n                except psutil.NoSuchProcess:\n                    pass\n        # check unclosed connections\n        if POSIX:\n            cons = [\n                x\n>               for x in this_proc.net_connections('tcp')\n                if x.status != psutil.CONN_CLOSE_WAIT\n            ]\nE           AttributeError: 'Process' object has no attribute 'net_connections'. Did you mean: 'connections'?\n\n/usr/local/lib/python3.10/site-packages/pyftpdlib/test/__init__.py:382: AttributeError"}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-36","seq":36,"branch_id":"agent1","kind":"diff","cmd":"compute patch in executor staging agent1-1647d2e64c4f4734a1606760bcfbecbb: /opt/homebrew/Cellar/git/2.53.0/bin/git -c core.hooksPath=/dev/null -c core.attributesFile=/dev/null -c diff.external= -c core.quotePath=false add -A && /opt/homebrew/Cellar/git/2.53.0/bin/git -c core.hooksPath=/dev/null -c core.attributesFile=/dev/null -c diff.external= -c core.quotePath=false diff --cached --binary --no-ext-diff --no-textconv --no-renames c2ec982a10118cd13ad8a2140e3a500110cce975","path":null,"exit_code":0,"stdout_tail":"diff --git a/fs/base.py b/fs/base.py\nindex 8d8ee4c..ef999f3 100644\n--- a/fs/base.py\n+++ b/fs/base.py\n@@ -9,6 +9,7 @@ can work with any of the supported filesystems.\n from __future__ import absolute_import, print_function, unicode_literals\n \n import abc\n+import datetime\n import hashlib\n import itertools\n import os\n@@ -751,6 +752,22 @@ class FS(object):\n             meta = {}\n         return meta\n \n+    def getmodified(self, path):\n+        # type: (Text) -> datetime\n+        \"\"\"Get the modified time of a resource.\n+\n+        Arguments:\n+            path (str): Path to a resource on the filesystem.\n+\n+        Returns:\n+            datetime: modified time of the resource.\n+\n+        Raises:\n+            fs.errors.ResourceNotFound: If the resource does not exist.\n+        \"\"\"\n+        info = self.getinfo(path, namespaces=(\"basic\", \"details\"))\n+        return info.modified\n+\n     def getsize(self, path):\n         # type: (Text) -> int\n         \"\"\"Get the size (in bytes) of a resource.\ndiff --git a/fs/ftpfs.py b/fs/ftpfs.py\nindex 86f0495..e1ab883 100644\n--- a/fs/ftpfs.py\n+++ b/fs/ftpfs.py\n@@ -694,6 +694,48 @@ class FTPFS(FS):\n             _meta[\"unicode_paths\"] = \"UTF8\" in self.features\n         return _meta\n \n+    def getmodified(self, path):\n+        # type: (Text) -> DateTime\n+        \"\"\"Get the modified time of a resource as a datetime object.\n+        \n+        Uses MDTM command when available for efficiency.\n+        \"\"\"\n+        _path = self.validatepath(path)\n+        with self._lock:\n+            with ftp_errors(self, path=path):\n+                response = self.ftp.sendcmd(str(\"MDTM \") + _encode(_path, self.ftp.encoding))\n+        # MDTM response format: \"YYYYMMDDHHMMSS[.ffffff]\"\n+        time_text = _decode(response, self.ftp.encoding).strip()\n+        # Remove the MDTM prefix (first 4 chars)\n+        if time_text.startswith(\"213 \"):\n+            time_text = time_text[4:]\n+        elif time_text.startswith(\"213\"):\n+            time_text = time_text[3:]\n+        # Parse the timestamp\n+        try:\n+            # Handle potential microseconds\n+            if \".\" in time_text:\n+                main_part, frac_part = time_text.split(\".\", 1)\n+                frac_part = frac_part.ljust(6, \"0\")[:6]  # Pad/truncate to 6 digits\n+                time_text = main_part + frac_part\n+            \n+            tm_year = int(time_text[0:4])\n+            tm_month = int(time_text[4:6])\n+            tm_day = int(time_text[6:8])\n+            tm_hour = int(time_text[8:10])\n+            tm_min = int(time_text[10:12])\n+            tm_sec = int(time_text[12:14])\n+            tm_usec = int(time_text[14:20]) if len(time_text) > 14 else 0\n+        except ValueError:\n+            # Fallback to getting info if MDTM fails\n+            info = self.getinfo(path, namespaces=(\"basic\", \"details\"))\n+            return info.modified\n+        \n+        # Convert to datetime object\n+        dt = datetime.datetime(tm_year, tm_month, tm_day, tm_hour, tm_min, tm_sec, tm_usec)\n+        # FTP times are typically in UTC\n+        return dt.replace(tzinfo=datetime.timezone.utc)\n+\n     def listdir(self, path):\n         # type: (Text) -> List[Text]\n         _path = self.validatepath(path)\n","stderr_tail":"","stdout_sha256":"6166a7470cf2f992774b1d53df1d9ae72d68262f23bc22409b88b9a53a87eead","log_path":null,"tree_digest":"7994ffc5ce846115df753529ba524d62000597ee5afd611e8f88eabb1df8a311","tree_download_s":2.5510676249396056,"started_at":"2026-10-03T01:31:19.776461Z","duration_s":0.046320082852616906,"timed_out":false,"image_before":"f1ba1dea-d6fa-418d-90a6-e7dd2c036e87","image_after":"f1ba1dea-d6fa-418d-90a6-e7dd2c036e87","junit":null,"diff":{"files":[{"path":"fs/base.py","added":17,"deleted":0,"category":"source","status":"modified"},{"path":"fs/ftpfs.py","added":42,"deleted":0,"category":"source","status":"modified"}],"patch_sha256":"6166a7470cf2f992774b1d53df1d9ae72d68262f23bc22409b88b9a53a87eead","patch_path":"~/dev/nebius-hackathon/pilot/v2-P/pyfilesystem__pyfilesystem2-462/runs/pilot-pyfilesystem__pyfilesystem2-462-a7a07ad9fa/artifacts/agent1/agent1-36.patch"},"patch_sha256":"6166a7470cf2f992774b1d53df1d9ae72d68262f23bc22409b88b9a53a87eead","dropped_paths":[],"snapshot_sha":"c2ec982a10118cd13ad8a2140e3a500110cce975"}
