{"receipt_id":"agent1-1","seq":1,"branch_id":"agent1","kind":"command","cmd":"git ls-files -z","path":null,"exit_code":0,"stdout_tail":"l\u0000AUTHORS.md\u0000CONTRIBUTING.md\u0000LICENSE\u0000Pipfile\u0000README.md\u0000ROADMAP.md\u0000appveyor/run_with_env.cmd\u0000apt.txt\u0000ci/envs/37-latest-conda-forge.yaml\u0000ci/envs/38-latest-conda-forge.yaml\u0000ci/envs/39-latest-conda-forge.yaml\u0000ci/envs/setup_postgres.sh\u0000docs/_static/example_locations.png\u0000docs/_static/example_modal_split_geolife.png\u0000docs/_static/example_positionfixes.png\u0000docs/_static/example_staypoints.png\u0000docs/_static/example_triplegs.png\u0000docs/_static/trackintel_logo.png\u0000docs/_static/trackintel_logo_squash.png\u0000docs/_static/tripalgorithm.png\u0000docs/_static/tripalgorithm.svg\u0000docs/_templates/layout.html\u0000docs/assets/hierarchy.png\u0000docs/assets/locations_with_pfs.png\u0000docs/assets/trackintel_logo.svg\u0000docs/assets/tripalgorithm.graphml\u0000docs/assets/visualisation_editable.pptx\u0000docs/conf.py\u0000docs/environment.yml\u0000docs/index.rst\u0000docs/modules/analysis.rst\u0000docs/modules/geogr.rst\u0000docs/modules/io.rst\u0000docs/modules/model.rst\u0000docs/modules/preprocessing.rst\u0000docs/modules/visualization.rst\u0000docs/tutorial.rst\u0000environment.yml\u0000examples/README.md\u0000examples/cache/e897ab7e9047ab46dd3814fcc9a755fb2ed6e7ad.json\u0000examples/config.json\u0000examples/data/geolife_trajectory.csv\u0000examples/data/google_trajectory.csv\u0000examples/data/gpsies_trajectory.csv\u0000examples/data/pfs.csv\u0000examples/data/pfs_tutorial.geojson\u0000examples/data/posmo_trajectory.csv\u0000examples/import_export_postgis.py\u0000examples/log/.gitignore\u0000examples/out/.gitignore\u0000examples/preprocess_trajectories.py\u0000examples/setup_example_database.py\u0000examples/trackintel_basic_tutorial.ipynb\u0000requirements.txt\u0000setup.py\u0000sql/create_tables_pg.sql\u0000tests/__init__.py\u0000tests/analysis/__init__.py\u0000tests/analysis/test_label.py\u0000tests/analysis/test_location_identification.py\u0000tests/analysis/test_modal_split.py\u0000tests/analysis/test_tracking_quality.py\u0000tests/data/area/tsinghua.geojson\u0000tests/data/geolife/000/Trajectory/20081024020959.plt\u0000tests/data/geolife/geolife_staypoints.csv\u0000tests/data/geolife/geolife_staypoints_short.csv\u0000tests/data/geolife/geolife_triplegs.csv\u0000tests/data/geolife_long/000/Trajectory/20081023025304.plt\u0000tests/data/geolife_long/000/Trajectory/20081024020959.plt\u0000tests/data/geolife_long/001/Trajectory/20081023055305.plt\u0000tests/data/geolife_long/001/Trajectory/20081023234104.plt\u0000tests/data/geolife_long/sp_tpls.csv\u0000tests/data/geolife_long/tours.csv\u0000tests/data/geolife_long/trips.csv\u0000tests/data/geolife_modes/010/Trajectory/20080330004134.plt\u0000tests/data/geolife_modes/010/Trajectory/20080330160039.plt\u0000tests/data/geolife_modes/010/Trajectory/20080331160008.plt\u0000tests/data/geolife_modes/010/Trajectory/20080402060926.plt\u0000tests/data/geolife_modes/010/labels.txt\u0000tests/data/geolife_modes/020/Trajectory/20111130020900.plt\u0000tests/data/geolife_modes/020/Trajectory/20111130151807.plt\u0000tests/data/geolife_modes/020/Trajectory/20111130152335.plt\u0000tests/data/geolife_modes/020/Trajectory/20111201123535.plt\u0000tests/data/geolife_modes/020/labels.txt\u0000tests/data/geolife_modes/178/Trajectory/20100312172608.plt\u0000tests/data/locations.csv\u0000tests/data/locations.geojson\u0000tests/data/locations_mod_columns.csv\u0000tests/data/positionfixes.csv\u0000tests/data/positionfixes.geojson\u0000tests/data/positionfixes_mod_columns.csv\u0000tests/data/sim1.csv\u0000tests/data/sim2.csv\u0000tests/data/staypoints.csv\u0000tests/data/staypoints.geojson\u0000tests/data/staypoints_mod_columns.csv\u0000tests/data/triplegs.csv\u0000tests/data/triplegs.geojson\u0000tests/data/triplegs_mod_columns.csv\u0000tests/data/triplegs_transport_mode_identification.csv\u0000tests/data/triplegs_with_too_many_points_test.csv\u0000tests/data/trips.csv\u0000tests/data/trips/sp_tpls_gaps.csv\u0000tests/data/trips/staypoints_gaps.csv\u0000tests/data/trips/triplegs_gaps.csv\u0000tests/data/trips/trips.csv\u0000tests/data/trips/trips_gaps.csv\u0000tests/data/trips_mod_columns.csv\u0000tests/examples/__init__.py\u0000tests/examples/test_examples.py\u0000tests/examples/test_tutorial.py\u0000tests/geogr/__init__.py\u0000tests/geogr/test_distances.py\u0000tests/geogr/test_point_distances.py\u0000tests/io/__init__.py\u0000tests/io/test_dataset_reader.py\u0000tests/io/test_file.py\u0000tests/io/test_from_geopandas.py\u0000tests/io/test_postgis.py\u0000tests/model/__init__.py\u0000tests/model/test_locations.py\u0000tests/model/test_positionfixes.py\u0000tests/model/test_staypoints.py\u0000tests/model/test_triplegs.py\u0000tests/model/test_trips.py\u0000tests/model/test_users.py\u0000tests/model/test_util.py\u0000tests/preprocessing/__init__.py\u0000tests/preprocessing/test_filter.py\u0000tests/preprocessing/test_positionfixes.py\u0000tests/preprocessing/test_staypoints.py\u0000tests/preprocessing/test_triplegs.py\u0000tests/preprocessing/test_trips.py\u0000tests/preprocessing/test_util.py\u0000tests/test_core.py\u0000tests/visualization/__init__.py\u0000tests/visualization/test_locations.py\u0000tests/visualization/test_modal_split.py\u0000tests/visualization/test_positionfixes.py\u0000tests/visualization/test_staypoints.py\u0000tests/visualization/test_triplegs.py\u0000tests/visualization/test_util.py\u0000trackintel/__init__.py\u0000trackintel/__version__.py\u0000trackintel/analysis/__init__.py\u0000trackintel/analysis/labelling.py\u0000trackintel/analysis/location_identification.py\u0000trackintel/analysis/modal_split.py\u0000trackintel/analysis/tracking_quality.py\u0000trackintel/core.py\u0000trackintel/geogr/__init__.py\u0000trackintel/geogr/distances.py\u0000trackintel/geogr/point_distances.py\u0000trackintel/io/__init__.py\u0000trackintel/io/dataset_reader.py\u0000trackintel/io/file.py\u0000trackintel/io/from_geopandas.py\u0000trackintel/io/postgis.py\u0000trackintel/model/__init__.py\u0000trackintel/model/locations.py\u0000trackintel/model/positionfixes.py\u0000trackintel/model/staypoints.py\u0000trackintel/model/tours.py\u0000trackintel/model/triplegs.py\u0000trackintel/model/trips.py\u0000trackintel/model/users.py\u0000trackintel/model/util.py\u0000trackintel/preprocessing/__init__.py\u0000trackintel/preprocessing/filter.py\u0000trackintel/preprocessing/positionfixes.py\u0000trackintel/preprocessing/staypoints.py\u0000trackintel/preprocessing/triplegs.py\u0000trackintel/preprocessing/trips.py\u0000trackintel/preprocessing/util.py\u0000trackintel/visualization/__init__.py\u0000trackintel/visualization/locations.py\u0000trackintel/visualization/modal_split.py\u0000trackintel/visualization/osm.py\u0000trackintel/visualization/positionfixes.py\u0000trackintel/visualization/staypoints.py\u0000trackintel/visualization/triplegs.py\u0000trackintel/visualization/util.py\u0000","stderr_tail":"","stdout_sha256":"23b33e1254c35809f670b10baa841d120f48bb1197fac5b26162bcdb373f085e","log_path":"~/dev/nebius-hackathon/pilot/v2-P/mie-lab__trackintel-344/runs/pilot-mie-lab__trackintel-344-87a18c5630/logs/agent1/agent1-1.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T20:26:37.401147Z","duration_s":0.003981,"timed_out":false,"image_before":"3a939eef-ff6d-4a20-b19f-7f2e45ee0159","image_after":"9c45c286-145b-4672-983a-6bcd58370316","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-2","seq":2,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-3cba5d1b7f674aea9d1eda174d4ae1f9/bin/busybox sh -c 'mkdir -p /trackintel/trackintel/io && cp /opt/receipts-3cba5d1b7f674aea9d1eda174d4ae1f9/incoming/c9653d4a0f3d7e904803cac0ee7b4db739eee0adf037d456e50f6facf45b4a32 /trackintel/trackintel/io/file.py'","path":"trackintel/io/file.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"c9653d4a0f3d7e904803cac0ee7b4db739eee0adf037d456e50f6facf45b4a32","log_path":"~/dev/nebius-hackathon/pilot/v2-P/mie-lab__trackintel-344/runs/pilot-mie-lab__trackintel-344-87a18c5630/logs/agent1/agent1-2.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T20:26:49.505617Z","duration_s":0.004653,"timed_out":false,"image_before":"9c45c286-145b-4672-983a-6bcd58370316","image_after":"d536e81c-4bf2-4ff2-beab-180cfaf45e0a","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-3","seq":3,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-c89b9d1740ea4b8baf2a52cd9ffcde67/bin/busybox sh -c 'mkdir -p /trackintel/trackintel/io && cp /opt/receipts-c89b9d1740ea4b8baf2a52cd9ffcde67/incoming/06adc3cf01f0d78c7c1d7a5b68548255a204863cbfb83e5c6106b979b6b28688 /trackintel/trackintel/io/file.py'","path":"trackintel/io/file.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"06adc3cf01f0d78c7c1d7a5b68548255a204863cbfb83e5c6106b979b6b28688","log_path":"~/dev/nebius-hackathon/pilot/v2-P/mie-lab__trackintel-344/runs/pilot-mie-lab__trackintel-344-87a18c5630/logs/agent1/agent1-3.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T20:26:54.537454Z","duration_s":0.0051459999999999995,"timed_out":false,"image_before":"d536e81c-4bf2-4ff2-beab-180cfaf45e0a","image_after":"2fb680de-a0cb-46a1-9365-a828b5106db3","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-4","seq":4,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-9921ba1ddfa44669960d07738b7811f1/bin/busybox sh -c 'mkdir -p /trackintel/trackintel/io && cp /opt/receipts-9921ba1ddfa44669960d07738b7811f1/incoming/fcb48acb5f124d0ec5dce028e59b382a4808236ec6fd2433330c1d12d6cf41f6 /trackintel/trackintel/io/file.py'","path":"trackintel/io/file.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"fcb48acb5f124d0ec5dce028e59b382a4808236ec6fd2433330c1d12d6cf41f6","log_path":"~/dev/nebius-hackathon/pilot/v2-P/mie-lab__trackintel-344/runs/pilot-mie-lab__trackintel-344-87a18c5630/logs/agent1/agent1-4.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T20:27:00.304141Z","duration_s":0.004661,"timed_out":false,"image_before":"2fb680de-a0cb-46a1-9365-a828b5106db3","image_after":"35a12a78-39e3-4ba2-9b53-ade3144f6bba","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-5","seq":5,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-3620ce2075904bb28e7f72fd1110c4c1/bin/busybox sh -c 'mkdir -p /trackintel/trackintel/io && cp /opt/receipts-3620ce2075904bb28e7f72fd1110c4c1/incoming/9eede5c6b8df11f6737ba87d48f9be4c4cae9679ecfdb1b78aab2f6cccd28e2f /trackintel/trackintel/io/file.py'","path":"trackintel/io/file.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"9eede5c6b8df11f6737ba87d48f9be4c4cae9679ecfdb1b78aab2f6cccd28e2f","log_path":"~/dev/nebius-hackathon/pilot/v2-P/mie-lab__trackintel-344/runs/pilot-mie-lab__trackintel-344-87a18c5630/logs/agent1/agent1-5.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T20:27:04.644411Z","duration_s":0.00516,"timed_out":false,"image_before":"35a12a78-39e3-4ba2-9b53-ade3144f6bba","image_after":"c839f6cf-1f10-412b-b3a6-16360fcffce9","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-6","seq":6,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-097fa47bfd5c4175b327083ef6998288/bin/busybox sh -c 'mkdir -p /trackintel/trackintel/io && cp /opt/receipts-097fa47bfd5c4175b327083ef6998288/incoming/870bf9631f4853bb2ca55a96c01ec3dbdde79484b8517be3ac865060de730b15 /trackintel/trackintel/io/file.py'","path":"trackintel/io/file.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"870bf9631f4853bb2ca55a96c01ec3dbdde79484b8517be3ac865060de730b15","log_path":"~/dev/nebius-hackathon/pilot/v2-P/mie-lab__trackintel-344/runs/pilot-mie-lab__trackintel-344-87a18c5630/logs/agent1/agent1-6.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T20:27:09.192211Z","duration_s":0.004824,"timed_out":false,"image_before":"c839f6cf-1f10-412b-b3a6-16360fcffce9","image_after":"604f1c36-0abe-4cc1-bf6f-1c11f9989766","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-7","seq":7,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-40c818568fe844afa2377eb488590d4c/bin/busybox sh -c 'mkdir -p /trackintel/trackintel/io && cp /opt/receipts-40c818568fe844afa2377eb488590d4c/incoming/f585f8288da2073c53b5cd825d2504f0e93d1403a4a1a142eb9345570f5a5788 /trackintel/trackintel/io/file.py'","path":"trackintel/io/file.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"f585f8288da2073c53b5cd825d2504f0e93d1403a4a1a142eb9345570f5a5788","log_path":"~/dev/nebius-hackathon/pilot/v2-P/mie-lab__trackintel-344/runs/pilot-mie-lab__trackintel-344-87a18c5630/logs/agent1/agent1-7.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T20:27:13.186042Z","duration_s":0.004325,"timed_out":false,"image_before":"604f1c36-0abe-4cc1-bf6f-1c11f9989766","image_after":"f096dfc6-c0a9-4b9e-9af1-37ee188af0b0","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-8","seq":8,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-74f88a3d59eb46749f27908afbae1270/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-74f88a3d59eb46749f27908afbae1270/receipts_pytest.py tests/preprocessing/test_staypoints.py::TestMergeStaypoints::test_merge_staypoints tests/preprocessing/test_staypoints.py::TestMergeStaypoints::test_merge_staypoints_error -v -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-8.xml","path":null,"exit_code":1,"stdout_tail":"umns=sp.columns)\n        assert len(merged_sp) == len(sp) - 3\n        # some staypoints stay the same (not merged)\n>       assert (merged_sp.loc[1] == sp.loc[1]).all()\nE       AssertionError: assert np.False_\nE        +  where np.False_ = all()\nE        +    where all = user_id      ... dtype: object == user_id      ... dtype: object\nE             \nE             Full diff:\nE               user_id                                0\nE               started_at     1971-01-01 00:00:00+00:00\nE               finished_at    1971-01-02 05:00:00+00:00\nE               geom              POINT (8.5067847 47.4)\nE             - location_id                            1...\nE             \nE             ...Full output truncated (4 lines hidden), use '-vv' to show.all\n\ntests/preprocessing/test_staypoints.py:406: AssertionError\n_______________ TestMergeStaypoints.test_merge_staypoints_error ________________\n\nself = <tests.preprocessing.test_staypoints.TestMergeStaypoints object at 0x7fffd26ac040>\nexample_staypoints_merge = (    user_id  ...                  geom\nid           ...                      \n1         0  ...  POINT (8.50678 47.4)\n...  POINT (8.50678 47.4)\n\n[8 rows x 4 columns], Empty GeoDataFrame\nColumns: [user_id, started_at, finished_at]\nIndex: [])\n\n    def test_merge_staypoints_error(self, example_staypoints_merge):\n        sp, tpls = example_staypoints_merge\n        sp.drop(columns=[\"location_id\"], inplace=True)\n        with pytest.raises(AssertionError) as excinfo:\n>           _ = sp.as_staypoints.merge_staypoints(tpls)\n\ntests/preprocessing/test_staypoints.py:467: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \ntrackintel/model/staypoints.py:97: in merge_staypoints\n    return ti.preprocessing.staypoints.merge_staypoints(self._obj, *args, **kwargs)\ntrackintel/preprocessing/staypoints.py:303: in merge_staypoints\n    sp_merge[[\"next_user_id\", \"next_started_at\", \"next_location_id\"]] = sp_merge[\n/usr/local/lib/python3.10/site-packages/geopandas/geodataframe.py:1891: in __getitem__\n    result = super().__getitem__(key)\n/usr/local/lib/python3.10/site-packages/pandas/core/frame.py:4119: in __getitem__\n    indexer = self.columns._get_indexer_strict(key, \"columns\")[1]\n/usr/local/lib/python3.10/site-packages/pandas/core/indexes/base.py:6212: in _get_indexer_strict\n    self._raise_if_missing(keyarr, indexer, axis_name)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = Index(['id', 'user_id', 'started_at', 'finished_at', 'geom', 'type',\n       'next_type', 'index_temp'],\n      dtype='object')\nkey = Index(['user_id', 'started_at', 'location_id'], dtype='object')\nindexer = array([ 1,  2, -1]), axis_name = 'columns'\n\n    def _raise_if_missing(self, key, indexer, axis_name: str_t) -> None:\n        \"\"\"\n        Check that indexer can be used to return a result.\n    \n        e.g. at least one element was found,\n        unless the list of keys was actually empty.\n    \n        Parameters\n        ----------\n        key : list-like\n            Targeted labels (only used to show correct error message).\n        indexer: array-like of booleans\n            Indices corresponding to the key,\n            (with -1 indicating not found).\n        axis_name : str\n    \n        Raises\n        ------\n        KeyError\n            If at least one key was requested but none was found.\n        \"\"\"\n        if len(key) == 0:\n            return\n    \n        # Count missing values\n        missing_mask = indexer < 0\n        nmissing = missing_mask.sum()\n    \n        if nmissing:\n            if nmissing == len(indexer):\n                raise KeyError(f\"None of [{key}] are in the [{axis_name}]\")\n    \n            not_found = list(ensure_index(key)[missing_mask.nonzero()[0]].unique())\n>           raise KeyError(f\"{not_found} not in index\")\nE           KeyError: \"['location_id'] not in index\"\n\n/usr/local/lib/python3.10/site-packages/pandas/core/indexes/base.py:6264: KeyError\n=============================== warnings summary ===============================\ntests/preprocessing/test_staypoints.py::TestMergeStaypoints::test_merge_staypoints\ntests/preprocessing/test_staypoints.py::TestMergeStaypoints::test_merge_staypoints_error\n  /trackintel/trackintel/model/staypoints.py:67: DeprecationWarning: is_datetime64tz_dtype is deprecated and will be removed in a future version. Check `isinstance(dtype, pd.DatetimeTZDtype)` instead.\n    assert pd.api.types.is_datetime64tz_dtype(\n\ntests/preprocessing/test_staypoints.py::TestMergeStaypoints::test_merge_staypoints\ntests/preprocessing/test_staypoints.py::TestMergeStaypoints::test_merge_staypoints_error\n  /trackintel/trackintel/model/staypoints.py:70: DeprecationWarning: is_datetime64tz_dtype is deprecated and will be removed in a future version. Check `isinstance(dtype, pd.DatetimeTZDtype)` instead.\n    assert pd.api.types.is_datetime64tz_dtype(\n\ntests/preprocessing/test_staypoints.py::TestMergeStaypoints::test_merge_staypoints\ntests/preprocessing/test_staypoints.py::TestMergeStaypoints::test_merge_staypoints_error\n  /trackintel/trackintel/preprocessing/staypoints.py:290: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n    sp_tpls = pd.concat([sp_merge, tpls_merge]).sort_values(by=[\"user_id\", \"started_at\"])\n\n-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html\n------------ generated xml file: /opt/receipts/reports/agent1-8.xml ------------\n=========================== short test summary info ============================\nFAILED tests/preprocessing/test_staypoints.py::TestMergeStaypoints::test_merge_staypoints\nFAILED tests/preprocessing/test_staypoints.py::TestMergeStaypoints::test_merge_staypoints_error\n======================== 2 failed, 6 warnings in 5.14s =========================\n","stderr_tail":"","stdout_sha256":"47db171949cbcbe10d52e0e4ccad6656191234b0a71caaf6f6aba74a45f61ea2","log_path":"~/dev/nebius-hackathon/pilot/v2-P/mie-lab__trackintel-344/runs/pilot-mie-lab__trackintel-344-87a18c5630/logs/agent1/agent1-8.log","tree_digest":"f5d56e871bd6adddd7583ea19c3b20653c9f037f1338ba8074d46f20f748fa6f","tree_download_s":16.969020624877885,"started_at":"2026-10-03T20:27:15.883420Z","duration_s":5.687026,"timed_out":false,"image_before":"f096dfc6-c0a9-4b9e-9af1-37ee188af0b0","image_after":"436876c9-f601-4583-9b76-ed2bad61e874","junit":{"passed":[],"failed":["tests/preprocessing/test_staypoints.py::TestMergeStaypoints::test_merge_staypoints","tests/preprocessing/test_staypoints.py::TestMergeStaypoints::test_merge_staypoints_error"],"errors":[],"skipped":[],"collection_errors":[],"failure_text":{"tests/preprocessing/test_staypoints.py::TestMergeStaypoints::test_merge_staypoints":"AssertionError: assert np.False_\n +  where np.False_ = all()\n +    where all = user_id      ... dtype: object == user_id      ... dtype: object\n      \n      Full diff:\n        user_id                                0\n        started_at     1971-01-01 00:00:00+00:00\n        finished_at    1971-01-02 05:00:00+00:00\n        geom              POINT (8.5067847 47.4)\n      - location_id                            1...\n      \n      ...Full output truncated (4 lines hidden), use '-vv' to show.all\nself = <tests.preprocessing.test_staypoints.TestMergeStaypoints object at 0x7fffd26ac3d0>\nexample_staypoints_merge = (    user_id                started_at  ...                  geom location_id\nid                                     ....0678 47.4)           4\n\n[8 rows x 5 columns], Empty GeoDataFrame\nColumns: [user_id, started_at, finished_at]\nIndex: [])\n\n    def test_merge_staypoints(self, example_staypoints_merge):\n        \"\"\"Test staypoint merging.\"\"\"\n        sp, tpls = example_staypoints_merge\n        # first test with empty tpls\n        merged_sp = sp.as_staypoints.merge_staypoints(tpls, agg={\"geom\": \"first\"})\n        merged_sp = merged_sp.reindex(columns=sp.columns)\n        assert len(merged_sp) == len(sp) - 3\n        # some staypoints stay the same (not merged)\n>       assert (merged_sp.loc[1] == sp.loc[1]).all()\nE       AssertionError: assert np.False_\nE        +  where np.False_ = all()\nE        +    where all = user_id      ... dtype: object == user_id      ... dtype: object\nE             \nE             Full diff:\nE               user_id                                0\nE               started_at     1971-01-01 00:00:00+00:00\nE               finished_at    1971-01-02 05:00:00+00:00\nE               geom              POINT (8.5067847 47.4)\nE             - location_id                            1...\nE             \nE             ...Full output truncated (4 lines hidden), use '-vv' to show.all\n\ntests/preprocessing/test_staypoints.py:406: AssertionError","tests/preprocessing/test_staypoints.py::TestMergeStaypoints::test_merge_staypoints_error":"[...]python3.10/site-packages/geopandas/geodataframe.py:1891: in __getitem__\n    result = super().__getitem__(key)\n/usr/local/lib/python3.10/site-packages/pandas/core/frame.py:4119: in __getitem__\n    indexer = self.columns._get_indexer_strict(key, \"columns\")[1]\n/usr/local/lib/python3.10/site-packages/pandas/core/indexes/base.py:6212: in _get_indexer_strict\n    self._raise_if_missing(keyarr, indexer, axis_name)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = Index(['id', 'user_id', 'started_at', 'finished_at', 'geom', 'type',\n       'next_type', 'index_temp'],\n      dtype='object')\nkey = Index(['user_id', 'started_at', 'location_id'], dtype='object')\nindexer = array([ 1,  2, -1]), axis_name = 'columns'\n\n    def _raise_if_missing(self, key, indexer, axis_name: str_t) -> None:\n        \"\"\"\n        Check that indexer can be used to return a result.\n    \n        e.g. at least one element was found,\n        unless the list of keys was actually empty.\n    \n        Parameters\n        ----------\n        key : list-like\n            Targeted labels (only used to show correct error message).\n        indexer: array-like of booleans\n            Indices corresponding to the key,\n            (with -1 indicating not found).\n        axis_name : str\n    \n        Raises\n        ------\n        KeyError\n            If at least one key was requested but none was found.\n        \"\"\"\n        if len(key) == 0:\n            return\n    \n        # Count missing values\n        missing_mask = indexer < 0\n        nmissing = missing_mask.sum()\n    \n        if nmissing:\n            if nmissing == len(indexer):\n                raise KeyError(f\"None of [{key}] are in the [{axis_name}]\")\n    \n            not_found = list(ensure_index(key)[missing_mask.nonzero()[0]].unique())\n>           raise KeyError(f\"{not_found} not in index\")\nE           KeyError: \"['location_id'] not in index\"\n\n/usr/local/lib/python3.10/site-packages/pandas/core/indexes/base.py:6264: KeyError"}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-9","seq":9,"branch_id":"agent1","kind":"command","cmd":"cd /trackintel && python -m py_compile trackintel/io/file.py","path":null,"exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","log_path":"~/dev/nebius-hackathon/pilot/v2-P/mie-lab__trackintel-344/runs/pilot-mie-lab__trackintel-344-87a18c5630/logs/agent1/agent1-9.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T20:27:48.806676Z","duration_s":0.033478,"timed_out":false,"image_before":"436876c9-f601-4583-9b76-ed2bad61e874","image_after":"5f8514f1-9ed0-43be-a01b-122fea88ee21","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-10","seq":10,"branch_id":"agent1","kind":"diff","cmd":"compute patch in executor staging agent1-60a2c67a3d8a459da05855c45da5352e: /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 c08bcda4869454dc0b99160adfa2b5937bde5f77","path":null,"exit_code":0,"stdout_tail":"diff --git a/trackintel/io/file.py b/trackintel/io/file.py\nindex f444527..44df4d5 100644\n--- a/trackintel/io/file.py\n+++ b/trackintel/io/file.py\n@@ -116,10 +116,21 @@ def write_positionfixes_csv(positionfixes, filename, *args, **kwargs):\n     filename : str\n         The file to write to.\n \n+    *args : tuple\n+        Positional arguments to pass to pandas to_csv function.\n+\n+    **kwargs : dict\n+        Keyword arguments to pass to pandas to_csv function.\n+\n     Notes\n     -----\n     \"longitude\" and \"latitude\" is extracted from the geometry column and the orignal\n     geometry column is dropped.\n+\n+    Examples\n+    --------\n+    >>> trackintel.write_positionfixes_csv(positionfixes, 'data.csv')\n+    >>> trackintel.write_positionfixes_csv(positionfixes, 'data.csv', sep=';')\n     \"\"\"\n     gdf = positionfixes.copy()\n     gdf[\"longitude\"] = positionfixes.geometry.apply(lambda p: p.coords[0][0])\n@@ -219,6 +230,17 @@ def write_triplegs_csv(triplegs, filename, *args, **kwargs):\n \n     filename : str\n         The file to write to.\n+\n+    *args : tuple\n+        Positional arguments to pass to pandas to_csv function.\n+\n+    **kwargs : dict\n+        Keyword arguments to pass to pandas to_csv function.\n+\n+    Examples\n+    --------\n+    >>> trackintel.write_triplegs_csv(triplegs, 'data.csv')\n+    >>> trackintel.write_triplegs_csv(triplegs, 'data.csv', sep='|')\n     \"\"\"\n     geo_col_name = triplegs.geometry.name\n     df = pd.DataFrame(triplegs, copy=True)\n@@ -317,6 +339,17 @@ def write_staypoints_csv(staypoints, filename, *args, **kwargs):\n \n     filename : str\n         The file to write to.\n+\n+    *args : tuple\n+        Positional arguments to pass to pandas to_csv function.\n+\n+    **kwargs : dict\n+        Keyword arguments to pass to pandas to_csv function.\n+\n+    Examples\n+    --------\n+    >>> trackintel.write_staypoints_csv(staypoints, 'data.csv')\n+    >>> trackintel.write_staypoints_csv(staypoints, 'data.csv', sep='\\t')\n     \"\"\"\n     geo_col_name = staypoints.geometry.name\n     df = pd.DataFrame(staypoints, copy=True)\n@@ -404,6 +437,17 @@ def write_locations_csv(locations, filename, *args, **kwargs):\n \n     filename : str\n         The file to write to.\n+\n+    *args : tuple\n+        Positional arguments to pass to pandas to_csv function.\n+\n+    **kwargs : dict\n+        Keyword arguments to pass to pandas to_csv function.\n+\n+    Examples\n+    --------\n+    >>> trackintel.write_locations_csv(locations, 'data.csv')\n+    >>> trackintel.write_locations_csv(locations, 'data.csv', sep=',', index=False)\n     \"\"\"\n     df = pd.DataFrame(locations, copy=True)\n     df[\"center\"] = locations[\"center\"].apply(wkt.dumps)\n@@ -502,6 +546,17 @@ def write_trips_csv(trips, filename, *args, **kwargs):\n \n     filename : str\n         The file to write to.\n+\n+    *args : tuple\n+        Positional arguments to pass to pandas to_csv function.\n+\n+    **kwargs : dict\n+        Keyword arguments to pass to pandas to_csv function.\n+\n+    Examples\n+    --------\n+    >>> trackintel.write_trips_csv(trips, 'data.csv')\n+    >>> trackintel.write_trips_csv(trips, 'data.csv', header=False)\n     \"\"\"\n     df = trips.copy()\n     if isinstance(df, GeoDataFrame):\n@@ -571,6 +626,17 @@ def write_tours_csv(tours, filename, *args, **kwargs):\n \n     filename : str\n         The file to write to.\n+\n+    *args : tuple\n+        Positional arguments to pass to pandas to_csv function.\n+\n+    **kwargs : dict\n+        Keyword arguments to pass to pandas to_csv function.\n+\n+    Examples\n+    --------\n+    >>> trackintel.write_tours_csv(tours, 'data.csv')\n+    >>> trackintel.write_tours_csv(tours, 'data.csv', columns=['user_id', 'started_at'])\n     \"\"\"\n     tours.to_csv(filename, index=True, *args, **kwargs)\n \n","stderr_tail":"","stdout_sha256":"1ccf77084f5cc30ae5e8ac390c5d40f0272c8a925898855e0dd82f059c83ac7d","log_path":null,"tree_digest":"f5d56e871bd6adddd7583ea19c3b20653c9f037f1338ba8074d46f20f748fa6f","tree_download_s":2.7961108749732375,"started_at":"2026-10-03T20:28:02.147045Z","duration_s":0.0716027501039207,"timed_out":false,"image_before":"5f8514f1-9ed0-43be-a01b-122fea88ee21","image_after":"5f8514f1-9ed0-43be-a01b-122fea88ee21","junit":null,"diff":{"files":[{"path":"trackintel/io/file.py","added":66,"deleted":0,"category":"source","status":"modified"}],"patch_sha256":"1ccf77084f5cc30ae5e8ac390c5d40f0272c8a925898855e0dd82f059c83ac7d","patch_path":"~/dev/nebius-hackathon/pilot/v2-P/mie-lab__trackintel-344/runs/pilot-mie-lab__trackintel-344-87a18c5630/artifacts/agent1/agent1-10.patch"},"patch_sha256":"1ccf77084f5cc30ae5e8ac390c5d40f0272c8a925898855e0dd82f059c83ac7d","dropped_paths":[],"snapshot_sha":"c08bcda4869454dc0b99160adfa2b5937bde5f77"}
{"receipt_id":"agent1-11","seq":11,"branch_id":"agent1","kind":"diff","cmd":"compute patch in executor staging agent1-a727fc0e3952484280f894bf50f3603c: /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 c08bcda4869454dc0b99160adfa2b5937bde5f77","path":null,"exit_code":0,"stdout_tail":"diff --git a/trackintel/io/file.py b/trackintel/io/file.py\nindex f444527..44df4d5 100644\n--- a/trackintel/io/file.py\n+++ b/trackintel/io/file.py\n@@ -116,10 +116,21 @@ def write_positionfixes_csv(positionfixes, filename, *args, **kwargs):\n     filename : str\n         The file to write to.\n \n+    *args : tuple\n+        Positional arguments to pass to pandas to_csv function.\n+\n+    **kwargs : dict\n+        Keyword arguments to pass to pandas to_csv function.\n+\n     Notes\n     -----\n     \"longitude\" and \"latitude\" is extracted from the geometry column and the orignal\n     geometry column is dropped.\n+\n+    Examples\n+    --------\n+    >>> trackintel.write_positionfixes_csv(positionfixes, 'data.csv')\n+    >>> trackintel.write_positionfixes_csv(positionfixes, 'data.csv', sep=';')\n     \"\"\"\n     gdf = positionfixes.copy()\n     gdf[\"longitude\"] = positionfixes.geometry.apply(lambda p: p.coords[0][0])\n@@ -219,6 +230,17 @@ def write_triplegs_csv(triplegs, filename, *args, **kwargs):\n \n     filename : str\n         The file to write to.\n+\n+    *args : tuple\n+        Positional arguments to pass to pandas to_csv function.\n+\n+    **kwargs : dict\n+        Keyword arguments to pass to pandas to_csv function.\n+\n+    Examples\n+    --------\n+    >>> trackintel.write_triplegs_csv(triplegs, 'data.csv')\n+    >>> trackintel.write_triplegs_csv(triplegs, 'data.csv', sep='|')\n     \"\"\"\n     geo_col_name = triplegs.geometry.name\n     df = pd.DataFrame(triplegs, copy=True)\n@@ -317,6 +339,17 @@ def write_staypoints_csv(staypoints, filename, *args, **kwargs):\n \n     filename : str\n         The file to write to.\n+\n+    *args : tuple\n+        Positional arguments to pass to pandas to_csv function.\n+\n+    **kwargs : dict\n+        Keyword arguments to pass to pandas to_csv function.\n+\n+    Examples\n+    --------\n+    >>> trackintel.write_staypoints_csv(staypoints, 'data.csv')\n+    >>> trackintel.write_staypoints_csv(staypoints, 'data.csv', sep='\\t')\n     \"\"\"\n     geo_col_name = staypoints.geometry.name\n     df = pd.DataFrame(staypoints, copy=True)\n@@ -404,6 +437,17 @@ def write_locations_csv(locations, filename, *args, **kwargs):\n \n     filename : str\n         The file to write to.\n+\n+    *args : tuple\n+        Positional arguments to pass to pandas to_csv function.\n+\n+    **kwargs : dict\n+        Keyword arguments to pass to pandas to_csv function.\n+\n+    Examples\n+    --------\n+    >>> trackintel.write_locations_csv(locations, 'data.csv')\n+    >>> trackintel.write_locations_csv(locations, 'data.csv', sep=',', index=False)\n     \"\"\"\n     df = pd.DataFrame(locations, copy=True)\n     df[\"center\"] = locations[\"center\"].apply(wkt.dumps)\n@@ -502,6 +546,17 @@ def write_trips_csv(trips, filename, *args, **kwargs):\n \n     filename : str\n         The file to write to.\n+\n+    *args : tuple\n+        Positional arguments to pass to pandas to_csv function.\n+\n+    **kwargs : dict\n+        Keyword arguments to pass to pandas to_csv function.\n+\n+    Examples\n+    --------\n+    >>> trackintel.write_trips_csv(trips, 'data.csv')\n+    >>> trackintel.write_trips_csv(trips, 'data.csv', header=False)\n     \"\"\"\n     df = trips.copy()\n     if isinstance(df, GeoDataFrame):\n@@ -571,6 +626,17 @@ def write_tours_csv(tours, filename, *args, **kwargs):\n \n     filename : str\n         The file to write to.\n+\n+    *args : tuple\n+        Positional arguments to pass to pandas to_csv function.\n+\n+    **kwargs : dict\n+        Keyword arguments to pass to pandas to_csv function.\n+\n+    Examples\n+    --------\n+    >>> trackintel.write_tours_csv(tours, 'data.csv')\n+    >>> trackintel.write_tours_csv(tours, 'data.csv', columns=['user_id', 'started_at'])\n     \"\"\"\n     tours.to_csv(filename, index=True, *args, **kwargs)\n \n","stderr_tail":"","stdout_sha256":"1ccf77084f5cc30ae5e8ac390c5d40f0272c8a925898855e0dd82f059c83ac7d","log_path":null,"tree_digest":"f5d56e871bd6adddd7583ea19c3b20653c9f037f1338ba8074d46f20f748fa6f","tree_download_s":3.5143349580466747,"started_at":"2026-10-03T20:28:38.936878Z","duration_s":0.05647983402013779,"timed_out":false,"image_before":"5f8514f1-9ed0-43be-a01b-122fea88ee21","image_after":"5f8514f1-9ed0-43be-a01b-122fea88ee21","junit":null,"diff":{"files":[{"path":"trackintel/io/file.py","added":66,"deleted":0,"category":"source","status":"modified"}],"patch_sha256":"1ccf77084f5cc30ae5e8ac390c5d40f0272c8a925898855e0dd82f059c83ac7d","patch_path":"~/dev/nebius-hackathon/pilot/v2-P/mie-lab__trackintel-344/runs/pilot-mie-lab__trackintel-344-87a18c5630/artifacts/agent1/agent1-11.patch"},"patch_sha256":"1ccf77084f5cc30ae5e8ac390c5d40f0272c8a925898855e0dd82f059c83ac7d","dropped_paths":[],"snapshot_sha":"c08bcda4869454dc0b99160adfa2b5937bde5f77"}
