{"id":15047450,"url":"https://github.com/nightmachinery/pyexfiltrator","last_synced_at":"2025-04-10T01:23:57.383Z","repository":{"id":115498919,"uuid":"400725129","full_name":"NightMachinery/PyExfiltrator","owner":"NightMachinery","description":"Julia's `@exfiltrate` for Python; Exports the local variables into a global dictionary for later debugging.","archived":false,"fork":false,"pushed_at":"2023-12-15T17:33:15.000Z","size":6,"stargazers_count":6,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-24T03:05:20.689Z","etag":null,"topics":["debug","debugging","debugging-tool","debugging-tools","exfiltrator","infiltrator","ipython","python","repl","repl-driven"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NightMachinery.png","metadata":{"files":{"readme":"readme.org","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-28T06:58:16.000Z","updated_at":"2022-11-07T20:15:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"cbbd7ed3-c26d-46f9-bdac-93987f6dde0a","html_url":"https://github.com/NightMachinery/PyExfiltrator","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NightMachinery%2FPyExfiltrator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NightMachinery%2FPyExfiltrator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NightMachinery%2FPyExfiltrator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NightMachinery%2FPyExfiltrator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NightMachinery","download_url":"https://codeload.github.com/NightMachinery/PyExfiltrator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248138789,"owners_count":21053953,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["debug","debugging","debugging-tool","debugging-tools","exfiltrator","infiltrator","ipython","python","repl","repl-driven"],"created_at":"2024-09-24T20:58:42.962Z","updated_at":"2025-04-10T01:23:57.358Z","avatar_url":"https://github.com/NightMachinery.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"#+TITLE: PyExfiltrator\n\nJulia's [[https://github.com/JuliaDebug/Infiltrator.jl#exfiltrate][@exfiltrate]] for Python; Exports the local variables into a global dictionary for later debugging.\n\n* Installation\n#+begin_example zsh\npip install pyexfiltrator\n#+end_example\n\nOr install the latest master:\n#+begin_example zsh\npip install -U 'git+https://github.com/NightMachinary/PyExfiltrator'\n#+end_example\n\n* Usage\n#+begin_src python :session p1 :results output :exports both :wrap example\nfrom pyexfiltrator import exfiltrate, exfiltrated\nfrom icecream import ic # prints its input\n\nglobal_var_1 = \"Hi\"\nglobal_var_2 = \"ice\"\n\ndef test_fn(arg1=8, arg2=['a', 'b']):\n    print(\"test_fn started\")\n\n    global global_var_1\n    local_var_1 = (1,2,3)\n\n    ic(exfiltrate())\n\n    print(\"test_fn finished\")\n\ndef test_fn2(arg1=3, arg3='monkey'):\n    print(\"test_fn2 started\")\n\n    local_var_2 = None\n\n    ic(exfiltrate())\n\n    print(\"test_fn2 finished\")\n\ntest_fn(arg1=10)\nic(exfiltrated)\ntest_fn2()\nic(exfiltrated)\n#+end_src\n\n#+RESULTS:\n#+begin_example\n\u003e\u003e\u003e test_fn started\nic| exfiltrate(): {'arg1': 10, 'arg2': ['a', 'b'], 'local_var_1': (1, 2, 3)}\ntest_fn finished\nic| exfiltrated: {'arg1': 10, 'arg2': ['a', 'b'], 'local_var_1': (1, 2, 3)}\ntest_fn2 started\nic| exfiltrate(): {'arg1': 3, 'arg3': 'monkey', 'local_var_2': None}\ntest_fn2 finished\nic| exfiltrated: {'arg1': 3,\n                  'arg2': ['a', 'b'],\n                  'arg3': 'monkey',\n                  'local_var_1': (1, 2, 3),\n                  'local_var_2': None}\n#+end_example\n\n* License\nThe MIT License\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnightmachinery%2Fpyexfiltrator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnightmachinery%2Fpyexfiltrator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnightmachinery%2Fpyexfiltrator/lists"}